数据结构实验报告二叉树重点.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告 实验名称 二叉树实验 评分: 实验课时 4课时 实验地点 综合楼E405 实验时间 2016年4月 24日 星期三 第5周 实验目的 及要求 实验目的: 通过序列构造二叉树的实验,进一步熟悉二叉树遍历及构造二叉树的过程,掌握基本知识点,发现理论学习中的不足;理清学习脉络;能独立思考,根据具体的序列组织数据,合理显示二叉树。 实验要求: (1)用树形结构画出一棵二叉树(在结论中画出),采用凹入表示法和括号表示法正确输出该树。 (2)分析该二叉树的先序遍历、中序遍历和后序遍历的结果。 (3)根据二叉树的基本运算,设计先序遍历和中序遍历(或者中序遍历和后序遍历),确定二叉树的算法。 (4)在不改变原有二叉树结构的条件下,将二叉树左右孩子进行交换,并采用凹入表示法和括号表示法输出原有二叉树及交换子树后的二叉树。 实验设备 (软件、硬件及耗材) 软件环境:Win7 microsoft visual6++ 硬件环境:intel core i5 cpu,4G内存,64位操作系统 实验内容 (算法、程序、步骤、方法及数据记录) 实验内容 (算法、程序、步骤、方法及数据记录) 实验内容 (算法、程序、步骤、方法及数据记录) 实验内容 (算法、程序、步骤、方法及数据记录) 一,源代码(1):头文件 #includestdio.h #includemalloc.h #define maxsize 100 typedef char elemtype; typedef struct node { elemtype data; struct node *lchild; struct node *rchild; }btnode; extern void createbtnode(btnode *b,char *str); extern void dispbtnode(btnode *b); extern void destroybtnode(btnode *b); extern void preorder(btnode *b); extern void inorder(btnode *b); extern void postorder(btnode *b); extern btnode *createbt1(char *pre,char *in,int n); extern btnode *createbt2(char *post,char *in,int n,int m); extern void dispbtnode1(btnode *b); extern btnode * revers(btnode *b); extern btnode *rchildnode(btnode *p); extern btnode *lchildnode(btnode *p); 二源代码(2):主函数:包括括号表示法,凹入表示法以及根据先序,中序确定二叉树。 #includestdio.h #includebtnodes.h void main() { btnode *b; createbtnode(b,A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))); printf(二叉树的基本运算入下:\n); printf((1)输出二叉树:); dispbtnode(b); printf(\n); printf(先序遍历序列:); preorder(b); printf(\n); printf(中序遍历序列:); inorder(b); printf(\n); printf(后序遍历序列:); postorder(b); printf(\n); elemtype pre[]=ABDEHJKLMNCFGI; elemtype in[]=DBJHLKMNEAFCGI; b=createbt1(pre,in,14); printf(先序序列:%s\n,pre); printf(中序序列:%s\n,in); printf(先序中序构造一棵二叉树b:\n); printf(括号表示法:); dispbtnode(b); printf(\n); printf(凹入表示法:\n); dispbtnode1(b); printf(\n\n); printf(交换左右孩子后的二叉树为:\n); createbtnode(b,A(B(D,E(H(J,K(L,M(,N)))

文档评论(0)

baobei + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档