国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖州市| 都江堰市| 宁远县| 邛崃市| 察哈| 清水河县| 桂林市| 伊金霍洛旗| 清丰县| 灵武市| 宝山区| 安溪县| 禹城市| 阿瓦提县| 汤原县| 淄博市| 太康县| 昌图县| 尼勒克县| 天长市| 收藏| 华蓥市| 邵阳县| 新竹县| 翁源县| 沾益县| 手游| 扬中市| 徐汇区| 曲周县| 本溪| 习水县| 许昌县| 闽清县| 积石山| 克山县| 岳池县| 资阳市| 类乌齐县| 长武县| 广南县|