《数据结构》实验报告【DOC精选】.docVIP

  • 12
  • 0
  • 约4.96千字
  • 约 8页
  • 2017-02-16 发布于江苏
  • 举报
《数据结构》实验报告【DOC精选】

南昌航空大学 实 验 报 告 课程名称: 数据结构 准考证号: 036811300371 姓 名: 刘林生 指导老师: 廖丽老师 二叉树的建立及输出实验目的 熟悉二叉链表表示的二叉树结构及其递归遍历,掌握建立二叉链表要领,深入理解递归遍历二叉链表的执行路径。 实验内容 (1)建立一颗二叉链表表示的二叉树; (2)对其进行前序,中序,后序输出。 实验要求 先将二叉树通过加入虚节点的方式使其完全化,然后按层将其输入。可以用二叉树中不会出现字符表示虚节点例如@,另一二叉树中不会出现的字符表示输入序列结束例如#。如下二叉树须输入序列a@b@@@c# 。或以广义表的形式输入二叉树的节点。按先序,中序,后序序列将其遍历输出。 五、 实验步骤 //A.Header Files Source Files bitree.cpp #includebitree.h int main(int argc, char* argv[]) { int array[] = {5,6,3,7,67,1,24,8,21,16,78,9}; Tree tr(array, sizeof(array)/sizeof(array[0])); tr.traverse(); return 0; } //B. Header Files bitree.h #include iostream #include stack //here delete #includecassert using namespace std; typedef int telemtype; struct bitnode //change to typedef struct bitnode and it will be //typedef : ignored on left of struct bitnode when no variable is declared at last it will be ok { bitnode* lchild; bitnode* rchild; telemtype data; bitnode(int e=0, bitnode* left=NULL, bitnode* right=NULL) { data = e; lchild = left; rchild = right; } }; class Tree { public: Tree() { root = NULL; } Tree(int array[], int size); ~Tree(); void traverse(); void postTraverse(); void recur_postTraverse(bitnode* cur); void preTraverse(); void recur_preTraverse(bitnode* cur); void inTraverse(); void recur_inTraverse(bitnode* cur); private: Tree(const Tree t); Tree operator=(const Tree t); bitnode* createTree(int array[], int size); void destroyTree(bitnode* cur); private: bitnode* root; }; Tree::Tree(int array[], int size) { if ((array==NULL)||(size=0)) root = NULL; else root = createTree(array, size); } //create a tree bitnode* Tree::createTree(int array[], int size) { if ((array==NULL)||(size=0)) return NULL; int mid=size/2; bitnode* cur=new bitnode(array[mid]); cur-lchild = createTre

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档