大家都知道二叉樹已知中序遍歷和後序遍歷可以求前序遍歷
已知前序遍歷和中序遍歷可以求後序遍歷,那麼現在實現一下
想法基本是利用遞迴,先找到根節點的位置,然後利用左右子樹遞迴
前序遍歷+中序遍歷 求 後序遍歷:
void dfs(char *inorder,char *preorder,int len)
dfs(inorder,preorder+1,rootindex);
dfs(inorder+rootindex+1,preorder+rootindex+1,len-1-rootindex);
printf("%c\n",*inorder );
}
中序遍歷+後序遍歷-->先序遍歷
void dfs(char *inorder,char*preorder,int len){
if(len == 0) return ;
int rootindex = 0;
printf("%c\n",postorder[len-1]);
while(rootindex
二叉樹的遍歷(遞迴)寫法
include include include includeusing namespace std typedef char elemtype typedef struct btnode btnode,binarytree 購買節點 btnode buynode 前序建立二叉樹 前序建立二叉樹 b...
二叉樹遍歷非遞迴寫法
資料結構考試前閒的蛋疼,整理課本。結點建立 struct node node root 中序遍歷 模擬深搜過程,在第一次回溯的時候輸出,即為中序遍歷 1 stackq1 2 node pre root 3while 1 4 10 一直往左走 11do 12while pre right null q...
二叉樹的遍歷方式(遞迴)
二叉樹的遍歷方式 遞迴 部落格摘要 一.什麼是二叉樹 簡述 二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 二叉樹的子樹有左右之分,次序不能顛倒。二.四種遍歷 本篇部落格講述二叉樹的四種遍歷 前序遍歷,中序遍歷,後序遍歷,層序遍歷 1.前序遍歷 先訪問當前結點,再訪問當前結點的左子樹結點,最...