二叉樹遍歷方式的轉化(遞迴寫法)

2021-07-23 17:38:45 字數 559 閱讀 4424

大家都知道二叉樹已知中序遍歷和後序遍歷可以求前序遍歷

已知前序遍歷和中序遍歷可以求後序遍歷,那麼現在實現一下

想法基本是利用遞迴,先找到根節點的位置,然後利用左右子樹遞迴

前序遍歷+中序遍歷 求 後序遍歷:

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.前序遍歷 先訪問當前結點,再訪問當前結點的左子樹結點,最...