408计算机考研--数据结构--二叉树学习(C语言)

本文详细介绍了二叉树的前序、中序、后序递归遍历方法,并通过栈实现非递归遍历。此外,还探讨了如何使用栈和队列进行层序遍历,以及如何计算树的深度。

二叉树学习

一、二叉树的前中后序递归遍历及应用(求树深度)

#include<stdio.h>
#inlcude<stdlib.h>

typedef struct BiTNode{
	int data;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

//先序遍历
void PreOrder(BiTree T){
	if(T!=NULL){
		visit(T);//访问根节点 
		PreOrder(T.lchild);//递归遍历左子树 
		PreOrder(T.rchild);//递归遍历右子树 
	}
} 

//中序遍历
void InOrder(BiTree T){
	if(T!=NULL){
		InOrder(T.lchild);//递归遍历左子树 
		visit(T);//访问根节点 
		InOrder(T.rchild);//递归遍历右子树 
	}
} 

//后序遍历
void PostOrder(BiTree T){
	if(T!=NULL){
		PostOrder(T.lchild);//递归遍历左子树 
		PostOrder(T.rchild);//递归遍历右子树 
		visit(T);//访问根节点 
	}
	printf("/n");
} 
//访问结点函数
void visit(BiTree T){
	printf("%d->",T.data);//打印结点数据 
}

//求树的深度
int treeDepth(BiTree T){
	if(T==NULL){
		return 0; 
	}else{
		int l=treeDepth(T.lchild);
		int r=treeDepth(T.rchild);
		//树的深度=Max(左子树深度,右子树深度)+1
		return l>r?l+1:r+1; 
	}
} 
int main(){
	
} 

二、二叉树的前中后序非递归遍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值