实验三 二叉树
1. 实验目的
(1) 掌握二叉树 Llink—Rlink 法结构和二叉树的建立
(2) 掌握用递归实现二叉树的遍历
(3) 加深对二叉树的理解,逐步培养解决实际问题的编程能力
2. 实验内容
二叉树按照二叉链表方式存储,编写算法,将二叉树左右子树进行交换。实现建立
二叉树,输出未交换前的中序遍历序列、交换左右子树、输出交换后的中序序列功
能。
3. 实验重点
(1) 二叉树的建立
(2) 二叉树的遍历
4. 实验难点
(1)二叉树的建立
(2)二叉树的遍历
5.实验指导
提示:设二叉树的根指针为 t ,且以二叉链表示,先按先序遍历顺序建立一棵二叉树,
再通过中序遍历,利用递归算法实现所有结点的左右子树交换。
#define Null 0
typedef struct node
{
int data;
struct node *lchild, * rchild:
}bitree;
bitree* creat( ) /*按先序遍历顺序来建立二叉树*/
{
bitree*t;
int x;
scanf(″%d″,&x);
if(x==0)
t=Null;
else
{
t=(bitree*)malloc(sizeof(bitree));
t->data=x
t->lchild=creat();
t->rchild=creat();
}
return t;
}/*creat*/
void inorder (bitree *t) /*中序遍历二叉树*/
{
if(t!=null)
评论10