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

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

已知前序(先序)與中序輸出后序

2019-11-08 02:08:52
字體:
來源:轉載
供稿:網友

轉自: http://www.liuchuo.net/archives/2087

已知前序(先序)與中序輸出后序: 前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右) 分析:因為前序(根左右)最先出現的總是根結點,所以令root為前序中當前的根結點下標(并且同時把一棵樹分為左子樹和右子樹)。start為當前需要打印的子樹在中序中的最左邊的下標,end為當前需要打印的子樹在中序中最右邊的下標。遞歸打印這棵樹的后序,遞歸出口為start > end。i為root所表示的值在中序中的下標,所以i即是分隔中序中對應root結點的左子樹和右子樹的下標。 先打印左子樹,后打印右子樹,最后輸出當前根結點PRe[root]的值。 輸出的后序應該為:3, 4, 2, 6, 5, 1(左右根)

123456789101112131415161718#include <cstdio>using namespace std;int pre[] = {1, 2, 3, 4, 5, 6};int in[] = {3, 2, 4, 1, 6, 5};void post(int root, int start, int end) { if(start > end) return ; int i = start; while(i < end && in[i] != pre[root]) i++; post(root + 1, start, i - 1); post(root + 1 + i - start, i + 1, end); printf("%d ", pre[root]);}int main() { post(0, 0, 5); return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黔西县| 叶城县| 安庆市| 丘北县| 渝中区| 溧阳市| 禹城市| 松原市| 五家渠市| 塔河县| 循化| 民勤县| 民和| 肇庆市| 沐川县| 水富县| 安化县| 卫辉市| 乐平市| 洛宁县| 宁安市| 宝兴县| 阿荣旗| 庆阳市| 辽源市| 衡水市| 夏邑县| 贵港市| 彩票| 桐乡市| 理塘县| 县级市| 福建省| 溧阳市| 韩城市| 郯城县| 丹寨县| 湘西| 桑植县| 威信县| 灵川县|