国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

PAT_1020. Tree Traversals

2019-11-08 19:51:08
字體:
來源:轉載
供稿:網友
// 1020_Tree Traversals.cpp : 定義控制臺應用程序的入口點。//1020. Tree Traversals (25)////時間限制//400 ms//內存限制//65536 kB//代碼長度限制//16000 B//判題程序//Standard//作者//CHEN, Yue//Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree.////Input Specification:////Each input file contains one test case. For each case, the first line gives a positive integer N (<=30), the total number of nodes in the binary tree. The second line gives the postorder sequence and the third line gives the inorder sequence. All the numbers in a line are separated by a space.////Output Specification:////For each test case, PRint in one line the level order traversal sequence of the corresponding binary tree. All the numbers in a line must be separated by exactly one space, and there must be no extra space at the end of the line.////Sample Input://7//2 3 1 5 7 6 4//1 2 3 4 5 6 7//Sample Output://4 1 6 3 5 7 2#include "stdafx.h"#include "stdio.h"#include "iostream"#include "string.h"#include "stdlib.h"#include "string"#include "algorithm"#include "queue"using namespace std;typedef struct node{ int value; struct node *lchild; struct node *rchild;}node;int post[32],in[32];node *create(int pl,int pr,int il,int ir){ if(pl>pr) return NULL; int t = il; while(in[t]!=post[pr]) t++; node *binode= (node *)malloc(sizeof(node)); binode->value = post[pr]; binode->lchild = create(pl,pl+t-il-1,il,t-1); binode->rchild = create(pl+t-il,pr-1,t+1,ir); return binode;}void bfs(node *root){ queue<node *>q; //隊列元素用結構體指針 node *temp =NULL; q.push(root); bool first = true; while(!q.empty()){ temp = q.front(); q.pop(); if(temp){ if(first){ cout<<temp->value; first = false; } else{ cout<<" "<<temp->value; } q.push(temp->lchild); q.push(temp->rchild); } } cout<<endl;}int main(){ int n; while(cin>>n){ for(int i =0;i<n;i++) cin>>post[i]; for(int i =0;i<n;i++) cin>>in[i]; node *root; root = create(0,n-1,0,n-1); bfs(root); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙田区| 涞水县| 永宁县| 怀远县| 清河县| 宁明县| 福州市| 临汾市| 于田县| 西安市| 南澳县| 曲阜市| 偃师市| 陇南市| 佛坪县| 富裕县| 和龙市| 武邑县| 阜新| 江油市| 哈尔滨市| 建湖县| 宜川县| 大庆市| 凌云县| 绥中县| 襄樊市| 甘泉县| 成武县| 柳江县| 谢通门县| 长子县| 故城县| 财经| 什邡市| 绍兴县| 广饶县| 合阳县| 武安市| 嘉定区| 民县|