实验目的:
(1)掌握非线性数据结构–树结构,继续帮助学生建立数据结构加操作的程序设计方法。
(2)重点掌握树遍历操作,因为遍历操作是其他众多操作的基础,其中访问动作可是任何操作。
(3)了解应用树结构解决实际应用问题。
本次实验中,下列实验项目选做一。
实验内容:
以二叉链表存储结构,实现二叉树的建立、先序遍历、中序遍历、后序遍历、统计叶子个数等操作。
[基本要求及提示]
(1)从键盘输入扩展的先序结点数据,建立二叉树。
(2)先序遍历,输出结点序列。
(3)中序遍历,输出结点序列。
(4)后序遍历,输出结点序列。
(5)统计叶子结点个数。
(6)要求程序通过一个主菜单进行控制,通过选择菜单项序号调用各功能函数。
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode//树的链式存储结构
{
char data;//结点数据域
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;
void CreateBiTree(BiTree *T)//先序遍历的顺序建立二叉链表
{
char ch;
ch=getchar();//按先序次序输入二叉树中结点的值(一个字符),创建二叉链表表示的二叉树T
if(ch=='#') *T=NULL;//递归结束,建空树
else//递归创建二叉树
{
*T=(struct BiTNode*)malloc(sizeof(struct BiTNode));<