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

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

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

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

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

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

已知后序與中序輸出前序(先序): 后序:3, 4, 2, 6, 5, 1(左右根) 中序:3, 2, 4, 1, 6, 5(左根右) 分析:因為后序的最后一個總是根結點,令i在中序中找到該根結點,則i把中序分為兩部分,左邊是左子樹,右邊是右子樹。因為是輸出先序(根左右),所以先打印出當前根結點,然后打印左子樹,再打印右子樹。左子樹在后序中的根結點為root – (end – i + 1),即為當前根結點-右子樹的個數。左子樹在中序中的起始點start為start,末尾end點為i – 1.右子樹的根結點為當前根結點的前一個結點root – 1,右子樹的起始點start為i+1,末尾end點為end。 輸出的前序應該為:1, 2, 3, 4, 5, 6(根左右)

#include <cstdio>using namespace std;int post[] = {3, 4, 2, 6, 5, 1};int in[] = {3, 2, 4, 1, 6, 5};void PRe(int root, int start, int end) { if(start > end) return ; int i = start; while(i < end && in[i] != post[root]) i++; printf("%d ", post[root]); pre(root - end + i - 1, start, i - 1); pre(root - 1, i + 1, end);}int main() { pre(5, 0, 5); return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松原市| 敖汉旗| 来宾市| 子洲县| 奉节县| 淳安县| 望谟县| 望江县| 富宁县| 宜春市| 靖宇县| 鹤峰县| 哈尔滨市| 临城县| 龙山县| 贵港市| 抚宁县| 玛多县| 桓台县| 孙吴县| 万山特区| 新晃| 泽州县| 亳州市| 平远县| 大港区| 天镇县| 东海县| 香河县| 南通市| 松桃| 深州市| 泌阳县| 玉山县| 都兰县| 陆川县| 庄河市| 长沙市| 黑龙江省| 额敏县| 许昌市|