用二叉链表存储的二叉树进行先序、中序和后序遍历的算法

更新时间:2023-07-23 23:26:06 阅读: 评论:0

⽤⼆叉链表存储的⼆叉树进⾏先序、中序和后序遍历的算法
⽤⼆叉树链表作为存储结构,完成⼆叉树的建⽴,先序、中序和后序以及按层次遍历的操作,求所有叶⼦及结点总数的操作
#include<iostream>
#include<cstdio>
#include<stdlib.h>
using namespace std;
typedef int Elemtype;
typedef struct BiTnode
{
Elemtype data;//数据域
struct BiTnode* Lchild,*Rchild; //左右⼦树域;
}BiTnode,*BiTree;
int create(BiTree *T)
you live{
Elemtype ch;
Elemtype temp;
scanf("%d",&ch);
temp=getchar();
if(ch==-1)
{
londonbridge*T=NULL;
}
el
{
*T=(BiTree)malloc(sizeof(BiTnode) );
if(!(*T))
{3s lady
exit(-1);
}chock
el
{
(*T)->data=ch;
printf("请输⼊%d的左节点的值",ch);
create(&(*T)->Lchild);
printf("请输⼊%d的右节点的值",ch);
create(&(*T)->Rchild);
}
}
return 1;
}
void Traver(BiTree T)//前序遍历⼆叉树
{
if(NULL==T)
{
schoolmatereturn;
}
el
{
printf("%d ",T->data);
Traver(T->Lchild);
Traver(T->Rchild);
}
}
//中序遍历⼆叉树
void midTraver(BiTree T)
{
if(T==NULL){return;}
midTraver(T->Lchild);
printf("%d ",T->data);
midTraver(T->Rchild);
}
//后序遍历⼆叉树
void lasTraver(BiTree T)
{
if(T==NULL){return;}
lasTraver(T->Lchild);
lasTraver(T->Rchild);
printf("%d ",T->data);
}
//求⼆叉树的深度
int TreeDeep(BiTree T)
{
int deep=0;
if(T)
{
foroverint leftdeep=TreeDeep(T->Lchild);
int rightdeep=TreeDeep(T->Rchild);
deep=leftdeep>=rightdeep?leftdeep+1:rightdeep+1;里约热内卢 英文
}
return deep;
}
//求⼆叉树叶⼦节点个数
int Leafcount(BiTree T,int &num)
{
if(T)
{跗猴
if(T->Lchild==NULL&&T->Rchild==NULL)
{
num++;
}
Leafcount(T->Lchild,num);
Leafcount(T->Rchild,num);
}
return num;
}
int main()
{
BiTree T;
BiTree *p=(BiTree*)malloc(sizeof(BiTree));
int deepth=0,num=0;
printf("请输⼊第⼀个节点的值,-1代表没有叶节点:\n");
create(&T);
chargeableweight
printf("先序遍历⼆叉树:\n");
Traver(T);
printf("\n");
printf("中序遍历⼆叉树:\n");
midTraver(T);
printf("\n");
printf("后序遍历⼆叉树:\n");
printf("后序遍历⼆叉树:\n");
aod
lasTraver(T);
printf("\n");
deepth=TreeDeep(T);
printf("树的深度:%d\n",deepth);
printf("\n");
Leafcount(T,num);
printf("⼆叉树的叶⼦节点个数为:%d\n",num);      printf("\n");
return 0;
}

本文发布于:2023-07-23 23:26:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/186727.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:遍历   节点   后序   叉树
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图