国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 图木舒克市| 家居| 信丰县| 玉树县| 阜城县| 常州市| 石阡县| 红原县| 社旗县| 长宁县| 绥中县| 开封市| 长海县| 逊克县| 元氏县| 宜宾市| 信宜市| 林甸县| 习水县| 开鲁县| 昌江| 山东省| 丽水市| 阿克苏市| 水富县| 大化| 柳江县| 通道| 凤凰县| 普安县| 梓潼县| 重庆市| 镇平县| 阳西县| 会昌县| 无棣县| 清镇市| 伽师县| 哈巴河县| 吴旗县| 哈巴河县|