PAT1086(二叉树)
来源:互联网 发布:桌面文件夹归类软件 编辑:程序博客网 时间:2024/05/21 06:03
#include<stdio.h>#include<stack>using namespace std;int pre[31];int in[31];int n;char str[10];int index1=0;int index2=0;int x;stack<int>s;struct node{int data;node *left;node *right;};node* creat(int prel,int prer,int inl,int inr){if(prel>prer)return NULL;node *root=new node;root->data=pre[prel];int k;for(k=inl;;k++)if(in[k]==pre[prel])break;int numl=k-inl;root->left=creat(prel+1,prel+numl,inl,k-1);root->right=creat(prel+numl+1,prer,k+1,inr);return root;}void postorder(node *root,int &index){if(root==NULL)return ;postorder(root->left,index);postorder(root->right,index);if(index<n){index++;printf("%d ",root->data);}elseprintf("%d\n",root->data);}int main(){//freopen("in.txt","r",stdin);scanf("%d",&n);for(int i=0;i<2*n;i++){scanf("%s",str);if(str[1]=='u'){scanf("%d",&x);s.push(x);pre[index1++]=x;//按输入顺序得到先序遍历}else {x=s.top();s.pop();in[index2++]=x;//模拟栈得到中序遍历序列}}node *root=creat(0,n-1,0,n-1);int index=1;postorder(root,index);return 0;}
0 0
- PAT1086(二叉树)
- PAT1086
- PAT1086
- 浙大PAT1086
- pat1086 Tree Traversals Again
- 树:二叉树几种形态(满二叉,完全二叉,线索二叉,二叉排序,平衡二叉,哈夫曼)
- PAT1086:Tree Traversals Again Java语言实现
- 二叉树、满二叉树、完全二叉树、二叉排序树(二叉查找树)、平衡二叉树
- 二叉树、二叉排序树(二叉查找树)、平衡二叉树
- 二叉树,排序二叉树(续)
- 二叉树5(复制二叉树)
- 二叉树的宽度(二叉树)
- 复制二叉树(二叉树)
- 判满二叉树(二叉树)
- 二叉树(四)删除二叉树
- 二叉查找树(二叉搜索树)
- 二叉树(二叉链表实现)
- PAT1086:Tree Traversals Again【Java实现】——改进版
- JSoup获取网页中的链接
- 如何使用C#创建WebService
- Android获取AndroidMenifest.xml中的meta-data数据
- WM_MOUSELEAVE和WM_MOUSEHOVER使用
- iOS开发笔记--去掉tableview中section的headerview粘性
- PAT1086(二叉树)
- java “/” 和 "\"
- AWK使用实例
- 数据可视化Data-Driven Documents
- 一座城,一个人
- 深入浅出Mybatis-与Spring集成
- 2014年车用显示器面板出货增三成
- vim基本命令
- 心血来潮,开通了博客