实验报告课程名称数据结构实验项目二叉树的建立与遍历实验仪器PC系别:计算机科学与技术班级\学号:计科0902/2009011136姓名:高锋日期:2011
04成绩:指导老师:张仰森一、目的和要求:1、熟练掌握二叉树的定义、性质和存储结构;2、熟练掌握二叉树的三种遍历和线索化以及遍历算法的各种描述形式;3、学会编写实现树的各种操作的算法
二、实验题目:二叉树的建立与遍历:掌握建立二叉树的方法,实现先序、中序、后序三种遍历(递归和非递归)算法;三、源程序(递归和非递归遍历)#include#include#defineTRUE1#defineFALSE0//树节点结构体typedefstructTNode{chardata;structTNode*lc,*rc;}*Tree;//栈结构体typedefstructStack{Tree*top,*base;//元素为树节点指针的指针
intstacksize;}stack;//栈的初始化voidInitStack(stack&s){//printf("init\n");s
base=(Tree*)malloc(sizeof(TNode)*100);//初始化100个空间if(
base){printf("error
\n");return;}s
base;s
stacksize=0;}//压栈操作voidpush(stack&s,Treet){*s
top=t;//printf("push%c\n",(*s
top)->data);s
top++;//栈顶指针+1s
stacksize++;}//出栈操作Treepop(stack&s){//Tree*p;if(s
top==s
base)//判断是否为空栈{printf("stackemptyerror
\n");returnNULL;}s
stacksize-