起止日期:2006 -2007 学年 1学期
系别:计算机科学与技术学院 班级05信息管理与信息系统 学号0527403015 姓名朱旭东
1需求分析
采用二叉链表示法完成:
1 创建生成二叉树
2 给出二叉树的前、中、后根遍历结果
3 求二叉树中根到指定节点的路径。2源程序
#include<stdio.h>
#include<stdlib.h>
typedef int TElemType;
typedef struct BitNode
{TElemType data;
struct BitNode *lchild,*rchild;
}BitNode,*BitTree;
//创建生成二叉树
BitTree CreateBiTree(void)
{
BitTree bt;TElemType x;
scanf(\"%d\",&x);
if(x==-1)bt=NULL;
else
{bt=(BitTree)malloc(sizeof(BitNode));
bt->data=x;
bt->lchild=CreateBiTree();
bt->rchild=CreateBiTree();
}
return bt;
}
//前根遍历结果
void PreOrderTraverse(BitTree bt)
{
if(bt!=NULL)
{printf(\"%d\",bt->data);
PreOrderTraverse(bt->lchild);
PreOrderTraverse(bt->rchild);
}
}
//中根遍历结果
void InOrderTraverse(BitTree bt)
{
if(bt!=NULL)
{InOrderTraverse(bt->lchild);
printf(\"%d\",bt->data);
InOrderTraverse(bt->rchild);
}
}
//后根遍历结果
void PostOrderTraverse(BitTree bt)
{
if(bt!=NULL)
{PostOrderTraverse(bt->lchild);
PostOrderTraverse(bt->rchild);
printf(\"%d\",bt->data);
}
}