数据结构5
来源:互联网 发布:tensorflow安装在哪里 编辑:程序博客网 时间:2024/04/29 14:26
呃 。。。心情不好。。。
实验五
建立一个含有10个节点的二叉树,并以直观的形式输出该二叉树,同时要求对该树进行层次遍历,输出该树的深度。
建树神马的,想想暑假用的线段树,凑合凑合吧,不过还是自己用递归重新写了写。。。
这个实验最恶心的地方是以直观的形式输出二叉树。。。蛋疼了。。。
//由于编辑框显示一排最多只有80个字符//若是用二叉树的形式表示,以2^n记//要正常显示的话,可以建深度为5的二叉树//因为要保证第一个接近中间<=40即为2^5<40#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#define max(a,b) (a>b?a:b)using namespace std;typedef struct node{ char data; struct node *l,*r;}*Bitree;Bitree build(){ char ch; scanf("%c",&ch); getchar(); if(ch=='#') return NULL; Bitree tree=new node; tree->data=ch; tree->l=build(); tree->r=build(); return tree;}void preorder(Bitree tree){ if(tree) { printf("%c ",tree->data); preorder(tree->l); preorder(tree->r); }}void inorder(Bitree tree){ if(tree) { inorder(tree->l); printf("%c ",tree->data); inorder(tree->r); }}void postorder(Bitree tree){ if(tree) { postorder(tree->l); postorder(tree->r); printf("%c ",tree->data); }}int Treedepth(Bitree tree){ int num=0; if(tree) num=max(Treedepth(tree->l),Treedepth(tree->r))+1; return num;}char tag[100][100];int miao;int wu=0;int deep;void cengci(Bitree tree,int miao,int wu,int q){ if(tree) { if(q==0) { miao=pow(2.0,deep); tag[++wu][miao]=tree->data; int ww=wu,uu=wu,mm=miao,nn=miao; deep--; cengci(tree->l,mm,ww,-1); deep++; cengci(tree->r,nn,uu,1); } else if(q==-1) { miao-=pow(2.0,deep); tag[++wu][miao]=tree->data; int ww=wu,uu=wu,mm=miao,nn=miao; deep--; cengci(tree->l,mm,ww,-1); cengci(tree->r,nn,uu,1); deep++; } else if(q==1) { miao+=pow(2.0,deep)+1; tag[++wu][miao]=tree->data; int ww=wu,uu=wu,mm=miao,nn=miao; deep--; cengci(tree->l,mm,ww,-1); cengci(tree->r,nn,uu,1); } }}int main(){ memset(tag,0,sizeof(tag)); Bitree tree=build(); deep=Treedepth(tree); printf("\nDepth: %d\n",deep); printf("\n先序遍历:\n"); preorder(tree); printf("\n中序遍历:\n"); inorder(tree); printf("\n后序遍历:\n"); postorder(tree); printf("\n层次遍历:\n"); cengci(tree,miao,wu,0); for(int i=0;i<=10;i++) {for(int j=0;j<=64;j++) { if(tag[i][j]) printf("%c",tag[i][j]); else printf(" "); } printf("\n"); } return 0;}
先试试了几个样例发现暂时没问题。。。。
看上去还凑合吧,但是我试了一个满二叉树,结果发现间距什么的问题都出来了,估计是递归里面的deep没有控制好 ,懒得改了,桑心了。。。
- 数据结构5
- 数据结构-5
- 数据结构1-5
- 程序员数据结构笔记5
- 数据结构笔记5 队列
- 数据结构复习笔记(5)
- 程序员数据结构笔记5
- 数据结构作业-5
- 22,数据结构(5)
- 《数据结构实验5》--排序
- 《数据结构》实验5
- 【Scheme归纳】5 数据结构
- 数据结构---数组(5)
- 数据结构总结(5)
- 数据结构5-队列
- 数据结构实验5-2
- 数据结构(5)--栈
- 数据结构实验5-递归
- 父亲跨血型为儿子捐肝手术完成
- win7和xp差异很大呀,哥要崩溃了。
- Linux环境进程间通信(二): 信号(下)
- [FF Add-on]修改ff下载文件目录
- Windows 临界区,内核事件,互斥量,信号量
- 数据结构5
- 获取CPU的ID号
- 使用Visual Studio开发ASP.NET应用程序后在IIS中配置出错的问题
- SQL 标量函数Access
- ubuntu 在桌面上创建应用程序图标(快捷方式)
- 模拟组合键
- cocos2d-x内存管理(一)
- A better way to center dialog
- MFC笔记