tree.go

package tree

import (
"fmt"
) type TreeNode struct {
ID int
Val int
Left *TreeNode
Right *TreeNode
} func PreOrder(root *TreeNode) {
if root != nil {
fmt.Printf("%d ", root.Val)
PreOrder(root.Left)
PreOrder(root.Right)
}
} func InOrder(root *TreeNode) {
if root != nil {
InOrder(root.Left)
fmt.Printf("%d ", root.Val)
InOrder(root.Right)
}
} func PostOrder(root *TreeNode) {
if root != nil {
PostOrder(root.Left)
PostOrder(root.Right)
fmt.Printf("%d ", root.Val)
}
}

main.go

package main

import (
"fmt"
"go_code/data_structure/tree"
) func main() { node7 := &tree.TreeNode{
ID: ,
Val: ,
Left: nil,
Right: nil,
}
node6 := &tree.TreeNode{
ID: ,
Val: ,
Left: nil,
Right: nil,
}
node5 := &tree.TreeNode{
ID: ,
Val: ,
Left: nil,
Right: nil,
}
node4 := &tree.TreeNode{
ID: ,
Val: ,
Left: nil,
Right: nil,
}
node3 := &tree.TreeNode{
ID: ,
Val: ,
Left: node6,
Right: node7,
}
node2 := &tree.TreeNode{
ID: ,
Val: ,
Left: node4,
Right: node5,
} node1 := &tree.TreeNode{
ID: ,
Val: ,
Left: node2,
Right: node3,
} fmt.Println("先序遍历")
tree.PreOrder(node1)
fmt.Println()
fmt.Println("中序遍历")
tree.InOrder(node1)
fmt.Println()
fmt.Println("后序遍历")
tree.PostOrder(node1)
}

运行结果:

golang数据结构之树的三种遍历方式的更多相关文章

  1. 树的三种遍历方式(C语言实现)

    //************************************************************************* // [前序]遍历算法 //二叉树不空,先访问根 ...

  2. java:数据结构(四)二叉查找树以及树的三种遍历

    @TOC 二叉树模型 二叉树是树的一种应用,一个节点可以有两个孩子:左孩子,右孩子,并且除了根节点以外每个节点都有一个父节点.当然这种简单的二叉树不能解决让树保持平衡状态,例如你一直往树的左边添加元素 ...

  3. Map三种遍历方式

    Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...

  4. 基于Java的二叉树的三种遍历方式的递归与非递归实现

    二叉树的遍历方式包括前序遍历.中序遍历和后序遍历,其实现方式包括递归实现和非递归实现. 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 ...

  5. 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法

    具体见第三阶段scala-day01中的文档(scala编程基础---基础语法)  1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...

  6. Java中List集合的三种遍历方式(全网最详)

    List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...

  7. set的三种遍历方式-----不能用for循环遍历(无序)

    set的三种遍历方式,set遍历元素 list 遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577662 set遍历元素 ht ...

  8. for 、foreach 、iterator 三种遍历方式的比较

    习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List<String> list = ...

  9. Map的三种遍历方式

    对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定 ...

随机推荐

  1. Kali Linux install "Veil-Evasion"

    Xx_Step wget https://github.com/ChrisTruncer/Veil/archive/master.zip unzip master.zip cd Veil-Evasio ...

  2. webpack-dev-server config.js Cannot find module

    Error: Cannot find module,webpack-dev-server --config 报错找不到模块 webpack-dev-server 设置 webpack.config.j ...

  3. Ali 访问控制 RAM 用户身份

    Ali 访问控制 RAM 用户身份 2018/11/13 Chenxin 参考: https://help.aliyun.com/product/28625.html?spm=a2c4g.111866 ...

  4. 中小后台系统UI框架--EasyUI

    后台开发人员不擅长前端UI界面,而小型软件公司没有专职美工岗位,开发人员只能借助开源UI框架,复用已有组件,完成用户操作界面.EasyUI是基于jQuery的UI插件集合体,可帮助开发者轻松构建网页. ...

  5. SQL Server优化技巧——如何避免查询条件OR引起的性能问题

    之前写过一篇博客"SQL SERVER中关于OR会导致索引扫描或全表扫描的浅析",里面介绍了OR可能会引起全表扫描或索引扫描的各种案例,以及如何优化查询条件中含有OR的SQL语句的 ...

  6. web项目的初始搭建和intellij的tomcat的配置

    点击web application

  7. Reinforcement Learning by Sutton 第三章习题答案

    好不容易写完了 想看全部的欢迎点击下面的github https://github.com/LyWangPX/Solutions-of-Reinforcement-Learning-An-Introd ...

  8. Python元组是什么

    引出 在使用Python过程中,列表.集合和字典是比较常用的数据结构. 列表简单说就是数组,不对,它就是数组 集合就是去重的元素结构,和JAVA中的set一样 字典就是一个key-value的键值对, ...

  9. Metasploit从文件中读取目标地址

    本文简单介绍如何使用Metasploit从文件中读取目标地址,来执行检测. 以检测MS17-010漏洞为例,在设定RHOSTS参数时,可设定目标地址范围和CIDR地址块,设定单个IP的目标也是可以的. ...

  10. node 升级版本

    1.安装 更新node.js版本 命令 [root@node ~]# npm install -g n /home/meisapp/node/node-v6.10.0-linux-x64/bin/n ...