国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹阳市| 石泉县| 沭阳县| 偃师市| 洪江市| 汉中市| 中宁县| 仲巴县| 宁南县| 郸城县| 定襄县| 达孜县| 虎林市| 昔阳县| 贵定县| 民和| 平顺县| 阜阳市| 宜都市| 三台县| 洛浦县| 富平县| 秀山| 潞西市| 利辛县| 梁平县| 牙克石市| 贡嘎县| 赤壁市| 体育| 余姚市| 五河县| 左贡县| 铁岭县| 搜索| 高清| 志丹县| 浮山县| 云霄县| 澄迈县| 漳州市|