栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二叉树的创建与遍历

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二叉树的创建与遍历

#include 
#include 
using namespace std;

typedef struct tree{
	char data;
	struct tree *lchild, *rchild;
}BitNode, *BiTree;

//建立二叉树    ABC##DE#G##F###
void creatTree(BiTree &T){
	char ch;
	cin >> ch;
	if (ch == '#'){
		T = NULL;
	} else {
		T = new BitNode;
		T->data = ch;
		creatTree(T->lchild);
		creatTree(T->rchild);
	}
} 

//中序遍历
void InOrderTraverse(BiTree T){
	if (T){
		InOrderTraverse(T->lchild);
		cout << T->data;
		InOrderTraverse(T->rchild);
	}
}

//先序遍历
void front(BiTree T) {
	if (T){
		cout << T->data;
		InOrderTraverse(T->lchild);
		InOrderTraverse(T->rchild);
	}
}

//后续遍历 
void end(BiTree T) {
	if (T){
		InOrderTraverse(T->lchild);
		InOrderTraverse(T->rchild);
		cout << T->data;
	}
}

//计算节点个数 
int NodeCount(BiTree T){
	if (T){
		return NodeCount(T->lchild) + NodeCount(T->rchild) + 1;
	}
}

//计算深度
int Depth(BiTree T){
	int m = 0, n = 0;
	if (T){
		m = Depth(T->lchild);
		n = Depth(T->rchild);
		if (m > n){
			return (m + 1);
		} else {
			return (n + 1);
		}
	}
	
} 
 

int main(){
	BiTree T = NULL;
    creatTree(T);
    cout << "================中序============"<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/512420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号