1086. Tree Traversals Again (25)
来源:互联网 发布:淘宝店铺类目修改 编辑:程序博客网 时间:2024/06/08 14:55
1086. Tree Traversals Again (25)
博主这里采用了建树的方法
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>struct BTree{ int data; struct BTree *lchild,*rchild;}*T;int inorder[30+1],preorder[30+1];int incur,precur,n;int stack[30+1],top;void Read(int *c){ char s[12]; gets(s); if(s[1]=='u') { char *p=&s[5]; int m=atoi(p); stack[top++]=m; preorder[precur++]=m; } else { (*c)++; inorder[incur++]=stack[--top]; }}void creatBT(int begin,int end,struct BTree **T){ if(begin>end) return; int root=begin; int e=preorder[precur++]; (*T)=(struct BTree*)malloc(sizeof(struct BTree)); (*T)->data=e; (*T)->lchild=(*T)->rchild=NULL; while(root<=end&&e!=inorder[root]) ++root; creatBT(begin,root-1,&(*T)->lchild); creatBT(root+1,end,&(*T)->rchild);}void PostTraverse(struct BTree *T){ if(T) { PostTraverse(T->lchild); PostTraverse(T->rchild); printf("%d",T->data); if(--n)printf(" "); }}int main(){ int c=0; scanf("%d",&n); getchar(); while(c<n) Read(&c); precur=0; creatBT(0,n-1,&T); PostTraverse(T); return 0;}
不建树的代码
#include <stdio.h>#include <stdlib.h>#include <string.h>int inorder[30+1],preorder[30+1];int incur,precur,n;int stack[30+1],top;void Read(int *c){ char s[12]; gets(s); if(s[1]=='u') { char *p=&s[5]; int m=atoi(p); stack[top++]=m; preorder[precur++]=m; } else { (*c)++; inorder[incur++]=stack[--top]; }}void display(int begin,int end){ if(begin>end) return; int root=begin; int e=preorder[precur++]; while(root<=end&&e!=inorder[root]) ++root; display(begin,root-1); display(root+1,end); printf("%d",e); if(--n)printf(" ");}int main(){ int c=0; scanf("%d",&n); getchar(); while(c<n) Read(&c); precur=0; display(0,n-1); return 0;}
0 0
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- 1086. Tree Traversals Again (25)
- ionic的在Android手机运行
- 解决视频在微信公众平台中无法播放的问题(python实现)
- WebApi 接口参数:传参详解 和动态类dynamic
- GET与POST比较-使用HTTP协议将客户端的请求传送到服务器端的两种方式
- Java常用的八种排序算法与代码实现
- 1086. Tree Traversals Again (25)
- Qt 之 去除窗口部件被选中后的焦点虚线框
- AndroidStudio签名打包Apk
- AngularJS——ngGrid(可配置的表格)
- Spring Boot Mysql 数据库操作
- transitionFromViewController:toViewController:duration:options:animations:completion 方法使用说明
- A*寻路算法c++
- stl实现全排列模板
- JTable简单介绍,以及tableModel的使用