树的基本操作
2016-08-09 19:32
253 查看
//二叉树的二叉链表节点结构定义
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild, Rchild;
}BiTNode, *BiTree;
//前序遍历
void PreOrderTraverse(BiTree T)
{
if(T ==NULL)
{
return;
}
printf("%2c", T->data);
PreOrderTraverse(T->lchild); //先遍历左子树
PreOrderTraverse(T->Rchild); //最后遍历右子树
}
void InOrderTraverse(BiTree T)
{
if(T == NULL)
return;
InOrderTraverse(T->lchild);
printf("%2c", T->data);
InOrderTraverse(T->Rchild);
}
void PostOrderTraverse(BiTree T)
{
if(T== NULL)
return ;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->Rchild);
printf("%2c", T->data);
}
int FindTreeDeep(BiTree T){
int deep=0;
if(BT){
int lchilddeep=FindTreeDeep(T->lchild);
int rchilddeep=FindTreeDeep(T->rchild);
deep=lchilddeep>=rchilddeep?lchilddeep+1:rchilddeep+1;
}
return deep;
}
void CreateBiTree(BiTree *T)
{
TElemType ch;
scanf("%c", &ch);
if(ch == '#')
{
*T= NULL;
}
else
{
*T = (BiTree)malloc(sizeof](BiTNode));
if(!*T)
exit(-1);
(*T)->data = ch;
CreateBiTree(T->lchild);
CreateBiTree(T->Rchild);
}
}
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild, Rchild;
}BiTNode, *BiTree;
//前序遍历
void PreOrderTraverse(BiTree T)
{
if(T ==NULL)
{
return;
}
printf("%2c", T->data);
PreOrderTraverse(T->lchild); //先遍历左子树
PreOrderTraverse(T->Rchild); //最后遍历右子树
}
void InOrderTraverse(BiTree T)
{
if(T == NULL)
return;
InOrderTraverse(T->lchild);
printf("%2c", T->data);
InOrderTraverse(T->Rchild);
}
void PostOrderTraverse(BiTree T)
{
if(T== NULL)
return ;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->Rchild);
printf("%2c", T->data);
}
int FindTreeDeep(BiTree T){
int deep=0;
if(BT){
int lchilddeep=FindTreeDeep(T->lchild);
int rchilddeep=FindTreeDeep(T->rchild);
deep=lchilddeep>=rchilddeep?lchilddeep+1:rchilddeep+1;
}
return deep;
}
void CreateBiTree(BiTree *T)
{
TElemType ch;
scanf("%c", &ch);
if(ch == '#')
{
*T= NULL;
}
else
{
*T = (BiTree)malloc(sizeof](BiTNode));
if(!*T)
exit(-1);
(*T)->data = ch;
CreateBiTree(T->lchild);
CreateBiTree(T->Rchild);
}
}
相关文章推荐
- 1110. Complete Binary Tree (25)
- (零)ArcGIS API For JavaScript3.17本地部署(Tomcat)
- codevs 3732 解方程
- 文章标题 codeforces 701B:Cells Not Under Attack(水+set)
- 微信开发束缚了你的思想
- java中解析一个json串,本文详细介绍了安卓原生的解析以及用fastjson解析
- linux 下mysql忘记密码解决方法
- Object 三个常用方法复习
- 探索SpringMVC(一)
- Mansory之一 :mas_equalTo和equalTo区别与使用
- HDU1423(最长公共递增子序列)
- Toolbar
- 链队列
- Socket的阻塞模式和非阻塞模式
- centos7上安装aapt
- 怎么用java将获取的日期往后添加一天!
- 再次深入理解TCP网络编程中的send和recv
- NOTEPAD++正则法则:第一个和最后一个
- 接口Map<k,v>的方法介绍及其底层的实现
- POJ 3673 Cow Multiplication (水题)