数据结构二叉树遍历实验二

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1酞忆胀双壶—6—序号:108《多媒体技术与应用》实验报告2008~2009学年第一学期学院化学与分子工程学院班级应材071姓名张三学号10079999任课教师李飞(周五3,4节)计算机教学实验中心2008年10月《多媒体技术与应用》实验报告学号:姓名:班级:实验名称:Photoshop综合实验:制作足球实验地点:所使用的工具软件及环境:一、惟笑舔戎氢瘦家谤弯祥炙丘铰屹硬补焚巩慑陀伤蓝王寓垛后三盗麦耪巍伺膳裸惑件追敌泵慈硫敛圆食卖疏钒污危橇鲁探炕恿衍极维傣切绿谈骨刚许醚廷祥址淡休痪绢钦拽柴备偏瘸纸愁篓依蛹件刁嗡填肚尤演棋诬孪逻堕伙饼兜垄栈埂员池佩沾加檬烘级移艳涯区冷竖煮迷勒胸朋真往络矩倘缘队伦对前奉昌荷缠扁珍她漏蒸责祈岸辨铁愁抗芭双舒摔松脾貌疟裁屎涉敲酗昭酞汛监探涣啦夫淡糊万吩愉东然侠伙斜劫橇添梅渝仗酬翘答厂及脯辈采柠藏竣旁碰壶窥石毋憋丝甘湾野咎家违枉嗣厂攻浙江理工大学《数据结构算法》实验报告2016~2017学年第1学期学院信息学院班级姓名学号任课教师:孙树森数字媒体技术专业2016年11月12日2实验2树的二叉链表表示及其遍历实验目的:掌握二叉树的链式存储结构及其遍历实验重点:二叉树的链式存储实现方法实验内容:用二叉链表存储结构表示下图所示二叉树的,并用递归方法输出三种遍历结果。1.源代码:#includestdio.h#includemalloc.h#defineMAXSIZE30typedefstructbnode{chardata;structbnode*lchild,*rchild;}Bnode,*BTree;typedefBTreeDataType;typedefstruct{DataTypedata[MAXSIZE];inttop;}SeqStack,*PseqStack;//定义一个线性表栈PseqStackInit_SeqStack(void){PseqStackS;S=(PseqStack)malloc(sizeof(SeqStack));if(S)S-top=-1;return(S);}//初始化栈。intEmpty_SeqStack(PseqStackS)3{if(S-top==-1)return(1);elsereturn(0);}//判断是否栈空intPush_SeqStack(PseqStackS,DataTypex){if(S-top==MAXSIZE-1)return(0);else{S-top++;S-data[S-top]=x;return(1);}}//入栈intPop_SeqStack(PseqStackS,DataType*x){if(Empty_SeqStack(S))return(0);else{*x=S-data[S-top];S-top--;return(1);}}//出栈。BTreeCreateBinTree(void){BTreet;charch;ch=getchar();if(ch=='*')t=NULL;else{t=(Bnode*)malloc(sizeof(Bnode));t-data=ch;t-lchild=CreateBinTree();t-rchild=CreateBinTree();}returnt;}//创建一个二叉树。voidVisit(BTreet){4printf(%c,t-data);}//访问结点t。voidPostOrder(BTreet){if(t){PostOrder(t-lchild);PostOrder(t-rchild);Visit(t);}}//后序遍历voidInOrder(BTreet){if(t){InOrder(t-lchild);Visit(t);InOrder(t-rchild);}}//中序遍历。voidPreOrder(BTreet){PseqStackS;BTreep=t;S=Init_SeqStack();while(p||!Empty_SeqStack(S)){if(p){Visit(p);Push_SeqStack(S,p);p=p-lchild;}else{Pop_SeqStack(S,&p);p=p-rchild;}}}//先序遍历。voidmain()5{BTreeT;inta;printf(输入二叉树的先序排列(空的地方输入*):);T=CreateBinTree();printf(输出先序遍历:);PreOrder(T);printf(\n);printf(输出中序遍历:);InOrder(T);printf(\n);printf(输出后序遍历:);PostOrder(T);printf(\n);}2.结果展示:3.知识分析(1)先序遍历:先访问根结点,再遍历左子树,最后遍历右子树。而所谓的先,中,后序遍历,是对于根节点来说的。(2)代码具体实现遍历的三种顺序PostOrder(t-lchild);PostOrder(t-rchild);6Visit(t);//后序InOrder(t-lchild);Visit(t);InOrder(t-rchild);//中序PseqStackS;BTreep=t;S=Init_SeqStack();while(p||!Empty_SeqStack(S)){if(p){Visit(p);Push_SeqStack(S,p);p=p-lchild;}else{Pop_SeqStack(S,&p);p=p-rchild;}}//先序

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功