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)
}
运行结果:
树的三种遍历方式(C语言实现)
//************************************************************************* // [前序]遍历算法 //二叉树不空,先访问根 ...
java:数据结构(四)二叉查找树以及树的三种遍历
@TOC 二叉树模型 二叉树是树的一种应用,一个节点可以有两个孩子:左孩子,右孩子,并且除了根节点以外每个节点都有一个父节点.当然这种简单的二叉树不能解决让树保持平衡状态,例如你一直往树的左边添加元素 ...
Map三种遍历方式
Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...
基于Java的二叉树的三种遍历方式的递归与非递归实现
二叉树的遍历方式包括前序遍历.中序遍历和后序遍历,其实现方式包括递归实现和非递归实现. 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 ...
Java中List集合的三种遍历方式(全网最详)
List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...
set的三种遍历方式-----不能用for循环遍历(无序)
set的三种遍历方式,set遍历元素 list 遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577662 set遍历元素 ht ...
for 、foreach 、iterator 三种遍历方式的比较
习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List list = ...
Map的三种遍历方式
对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定 ...
java集合的三种遍历方式
import java.util.ArrayList; import java.util.Collection;import java.util.Iterator;public class Home ...
随机推荐
重装系统后,delphi7打开报错
delphi7运行不正常的提示unable to rename'c:\program files\Borland\delphi7\Bin\delphi32.$$$'to'c:\program file ...
Codeforces 271 Div 2 A	 Keyboard
题目链接:http://codeforces.com/contest/474/problem/A 解题报告:一个矩形的键盘,上面只有规定的字符,现在按的时候总是会向某个方向按偏,也就是输入一串字符后, ...
Hadoop学习11--Ha集群配置启动
理论知识: http://www.tuicool.com/articles/jameeqm 这篇文章讲的非常详细了: http://www.tuicool.com/articles/jameeqm 以 ...
lock关键字理解
>可以把lock关键字可以看成 try{ Monitor.Enter(x); //.. } finally{ Monitor.Exit(x); } 这样子的结构,当然使用lock关键字更方便 & ...
把工程部署在tomcat的root路径下
myeclipse可以右键工程:(eclipse也可以)选择properties->myeclipse->web:把web context-root改成:/然后在用myeclipse部署项 ...
你能在windows上创建一个叫做AUX的文件夹吗?
Windows的文件名不能有如下这些特殊符号,这个大家都比较熟悉了. < (less than) > (greater than) : (colon) " (double quo ...
Android 图片平铺效果实现的3种方法
Html中平铺的效果,那么我们都是怎么样才能实现的那,我们其实主要用到的就是api,我们一开始new一个bitmap,就可以了,那么我们就来说说第二种方法,那就在用到了xml,上面我们说了两个方法,但 ...
NodeMCU之旅(三):响应配置按钮
引言 在之前的代码中,要连接的WIFI信息都已写死在代码里,这显然不能适应我们的需求.所以需要想个办法让用户可以配置这些信息. WIFI工作模式 NodeMCU支持STATION,SOFTAP,STA ...
mysql查询文章的评论数量
作为小白的我,这个问题弄了半天才解决,特此记录下. 两张表:文章表和评论表 文章表(article):id 评论表(comment):id,c_aid 要求:查询出所有文章及评论数量然后降序显示(没有 ...
nginx配置 location及rewrite规则详解
1. location正则写法 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url ...