golang 遍历list_golang数据结构之树的三种遍历方式

本文介绍了Go语言中如何实现二叉树的前序、中序和后序遍历。通过示例代码展示了遍历方法的定义和调用,并在`main`函数中创建了一个简单的二叉树实例,进行遍历操作。这些遍历方法对于理解和操作树结构的数据至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值