二叉树操作,掌握指针变量的含义
源代码在线查看: 二叉树操作.txt
二叉树操作
一、 实验目的
1. 进一步掌握指针变量的含义。
2. 掌握二叉树的结构特征,以及各种存储结构的特点及使用范围。
3. 掌握用指针类型描述、访问和处理二叉树的运算。
二、 实验要求
1. 认真阅读和掌握本实验的程序。
2. 上机运行本程序。
3. 保存和打印出程序的运行结果,并结合程序进行分析。
4. 按照你二叉树的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
三、 实验内容
程序1: 按先序次序输入二叉树中结点的值(一个字符),`0`表示空树,生成二叉树的二叉链表存储结构, a为指向根结点的指针。然后按中序顺序遍历二叉树。
算法思想:先访问左子树,再访问根结点,最后访问右子树
本算法采程序如下:
#define NULL 0
typedef struct stu{
char data;
struct stu *left,*right;
}sn;
sn *Create(sn *a)
{char ch;
scanf("%c",&ch);
if(ch!='*'){a=(sn *)malloc(sizeof(sn));
if (!a) printf("yuguyuy");
a->data=ch;
a->left=Create(a->left);
a->right=Create(a->right);
}
else a=NULL;
return(a);
}
void inc(sn *b)
{if(b){ inc(b->left);
printf("%c",b->data);
inc(b->right);}
}
main( )
{
sn *t,*q;
q=NULL;
t=Create(q);
inc(t);
printf("\n");
getch();
}