树的三种遍历方法的个人理解及代码实现

本文介绍了二叉树的三种遍历方法:前序、中序和后序,包括它们的节点访问顺序。前序遍历顺序为根-左-右,中序遍历顺序为左-根-右,后序遍历顺序为左-右-根。并提供了代码示例来实现这些遍历方式,以帮助理解。
摘要由CSDN通过智能技术生成

树的三种遍历方法:前序,中序和后序及其代码实现。
在此分别总结先序,中序,后序的结点输出顺序。

个人记忆理解:这三种遍历顺序都是相对于根节点的访问顺序来命名的。

先序:
1.访问根结点

2.访问左子树

3.访问右子树

中序:
1.访问左子树

2.访问根结点

3.访问右子树

访问左子树。【先访问左子树中的左子树,再访问左子树中的右子树。】直到访问到叶子结点后输出。

输出根。

访问右子树。【先访问右子树中的左子树,再访问右子树中的右子树。】直到访问到叶子结点后输出。

后序:
1.访问左子树

2.访问右子树

3.访问根

访问左子树。【先访问左子树中的左子树,再访问左子树中的右子树】。直到访问到叶子结点后输出。

访问右子树。【先访问右子树中的左子树,再访问右子树中的右子树】。直到访问到叶子结点后输出。

再返回访问根,并输出。

代码实例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct treenode {
   
	void *data;
	struct treenode *left;
	struct treenode *right;
} treenode;
 
typedef struct tree {
   
	treenode *root;  //根节点
	//其他属性...
} tree;
 
treenode *make_node(void *data){
   
	treenode *node = (treenode *)malloc(sizeof(treenode));
	bzero(node, sizeof(*node));
	node->data = data;
	node->left = NULL;
	node->right = NULL;
	return node;
}
 
// 先序遍历 根节点 -> 左节点 -> 右节点
void first_sort_var_dump(const treenode *node) {
   
	if (node == NULL) {
   
		return;
	}
	printf("node->data: %s\n"
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值