博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT1099
阅读量:4365 次
发布时间:2019-06-07

本文共 2980 字,大约阅读时间需要 9 分钟。

 

/*innner order traverse for BST will be ordered

*1.sort the value in buffer
*2.inner traverse the BST and insert the value
*3.be careful for the formatted output
*4.level traverse output using queue
*/

 

/*c-style code

* abusing in global variable
*not good encapsulation
*may be possible to use reference for 'start'
*/

1 #include 
2 #include
3 #include
4 #include
5 #define maxn 100 6 using namespace std; 7 typedef struct { 8 int left,right; 9 int value;10 int inserted;11 }binode;12 binode bitree[maxn];13 int buf[maxn];14 int start=0;15 queue
q;16 void middle_insert(int root)17 {18 if(root==-1)return;19 middle_insert(bitree[root].left);20 if(bitree[root].left==-1 || bitree[bitree[root].left].inserted==1)21 {22 bitree[root].value=buf[start];23 bitree[root].inserted=1;24 start++;25 //return ;26 }27 middle_insert(bitree[root].right);28 }29 void level_traverse()30 {31 int i=0;32 q.push(0);33 while(!q.empty())34 {35 int tmp=q.front();36 buf[i++]=bitree[tmp].value;37 q.pop();38 if(bitree[tmp].left!=-1)q.push(bitree[tmp].left);39 if(bitree[tmp].right!=-1)q.push(bitree[tmp].right);40 }41 }42 int main()43 {44 //freopen("input.txt","r",stdin);45 int i,n;46 while(cin>>n)47 {48 memset(buf,0,sizeof(buf));49 memset(bitree,0,sizeof(bitree));50 //fill(bitree,bitree+n,0); parameter must be iterator51 for(i=0;i

IMPROVE IN  C++

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #define maxn 100 7 using namespace std; 8 typedef struct { 9 int left,right;10 int value;11 int inserted;12 }binode;13 14 15 binode bitree[maxn];16 int buf[maxn];17 void middle_insert(int root,int &start)18 {19 if(root==-1)return;20 middle_insert(bitree[root].left,start);21 if(bitree[root].left==-1 || bitree[bitree[root].left].inserted==1)22 {23 bitree[root].value=buf[start];24 bitree[root].inserted=1;25 start++;26 //return ;27 }28 middle_insert(bitree[root].right,start);29 }30 void level_traverse(binode bitree[],int buf[])31 {32 queue
q;33 int i=0;34 q.push(0);35 while(!q.empty())36 {37 int tmp=q.front();38 buf[i++]=bitree[tmp].value;39 q.pop();40 if(bitree[tmp].left!=-1)q.push(bitree[tmp].left);41 if(bitree[tmp].right!=-1)q.push(bitree[tmp].right);42 }43 }44 int main()45 {46 47 freopen("input.txt","r",stdin);48 int n;49 while(cin>>n)50 {51 memset(buf,0,sizeof(buf));52 memset(bitree,0,sizeof(bitree));53 for(int i=0;i
>bitree[i].left>>bitree[i].right;54 for(int i=0;i
>buf[i];55 sort(buf,buf+n);56 //for(i=0;i

 

转载于:https://www.cnblogs.com/zeroArn/p/5829422.html

你可能感兴趣的文章
使用Keil下载单独的Hex文件到单片机内
查看>>
EditPlus中文版 安装教程
查看>>
ASP.NET MVC4使用JCrop裁剪图片并上传
查看>>
poj1564
查看>>
string类的常用的几个小东西find,substr
查看>>
玲珑OJ1088【蜜汁尺取】
查看>>
什么时候应该使用C#的属性
查看>>
Java多线程
查看>>
学习和复习过程
查看>>
CSS 列表
查看>>
MyBatis代码生成器(maven插件方式和控制台命令运行方式)
查看>>
Run “mvn clean install” in Eclipse
查看>>
实验二
查看>>
Jquery使用Id获取焦点和失去焦点
查看>>
Linux入门到放弃之七《进程管理》
查看>>
VS Code 简单配置运行Java
查看>>
Rectangle Intersection Test (with C#)
查看>>
c printf()详解[转载]
查看>>
03、 forms组件
查看>>
Win32++ Home Page
查看>>