《2022年数据结构实验报告中序遍历二叉树 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构实验报告中序遍历二叉树 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、班级:380911 班学号:57000211 姓名:徐敏实验报告一,实验目的:掌握二叉树的链式存储结构;掌握构造二叉树的方法;加深对二叉树的中序遍历的理解;二,实验方法:用递归调用算法中序遍历二叉树。三,实验步骤:通过链式存储建立一颗二叉树。设计一个算法实现中序遍历二叉树。四,具体实验步骤:#include#include#define LEFT 0#define RIGHT 1#define TRUE 1#define FALSE 0 typedef struct _BTNODE char c;struct _BTNODE*lchild;struct _BTNODE*rchild;BTNOD
2、E,*PBTNODE;void PrintBTree(PBTNODE p,int depth);void ConstructBTree(PBTNODE p);void InorderTraverse(PBTNODE p);void main()PBTNODE p;p=(PBTNODE)calloc(1,sizeof(BTNODE);printf(Input the data:);ConstructBTree(p);PrintBTree(p,0);printf(Now InorderTraverse:);InorderTraverse(p);printf(nPress any key to co
3、ntinue.);getchar();void PrintBTree(PBTNODE p,int depth)名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -班级:380911 班学号:57000211 姓名:徐敏int i;if(p=NULL)return;else for(i=0;i);printf(%cn,p-c);PrintBTree(p-lchild,depth+1);PrintBTree(p-rchild,depth+1);void ConstructBTree(PBTNODE p)int side;char c;side=LEFT;while(TRUE)s
4、canf(%c,&c);if(c=n)/printf(EOFn);return;/printf(%dn,c);switch(c)case|:break;case):return;case,:side=RIGHT;break;case(:if(side=LEFT)if(p-lchild=NULL)p-lchild=(PBTNODE)calloc(1,sizeof(BTNODE);ConstructBTree(p-lchild);else if(p-rchild=NULL)p-rchild=(PBTNODE)calloc(1,sizeof(BTNODE);名师资料总结-精品资料欢迎下载-名师精心整
5、理-第 2 页,共 3 页 -班级:380911 班学号:57000211 姓名:徐敏ConstructBTree(p-rchild);break;default:if(side=LEFT)p-lchild=(PBTNODE)calloc(1,sizeof(BTNODE);p-lchild-c=c;else p-rchild=(PBTNODE)calloc(1,sizeof(BTNODE);p-rchild-c=c;void InorderTraverse(PBTNODE p)if(p=NULL)return;else InorderTraverse(p-lchild);printf(%c,p-c);InorderTraverse(p-rchild);return;五,实验过程:输出:Input the date;输入:1(2(3,4),5(6,7);输出:Now InorderTraverse:【3】【2】【4】【1】【6】【5】【7】;六,上机实验体会:体会到熟练掌握各种程序算法的重要性;通过上机练习,充分理解了链式建立二叉树的算法;形象的了解二叉树的结构,能够熟练的进行先序,中序,后序遍历二叉树。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -
限制150内