先序求二叉樹

2021-09-25 01:34:17 字數 825 閱讀 3288

題的意思也比較好理解,就是給出中序和後序遍歷的次序,讓你輸出樹的前序遍歷的次序。

樹的結點構造

struct node;

node *root;

從根節點開始,按找先訪問父母結點,再訪問左子樹和右子樹的順序規則,一直遍歷到空結點就結束當前子樹的遍歷。

void preoder(node *n)

void preoder()

從根節點開始,按找先訪問左子樹,再訪問父母結點,最後訪問右子樹的順序規則,一直遍歷到空結點就結束當前子樹的遍歷。

void inoder(node *n)

void inoder()

從根節點開始,按找先訪問左子樹,再訪問右樹,最後訪問父母結點的順序規則,一直遍歷到空結點就結束當前子樹的遍歷。

void postoder(node *n)

void postoder()

主要就是兩個演算法,乙個時用二分查詢,求出樹的結點個數,另乙個就是深度優先搜尋演算法。演算法流程在注釋中解釋的很清楚,廢話不多說,就直接粘**吧!

#includeusing namespace std;

const int maxn=10;//最大資料規模

char a[maxn];//存放中序序列

char b[maxn];//存放後序序列

void dfs(int left,int right,int cur) else

} return mid;

}int main()

先序構建二叉樹及先序遍歷二叉樹

先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...

先序構建二叉樹及先序遍歷二叉樹

先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...

求二叉樹的先序遍歷

time limit 1000ms memory limit 65536k 已知一棵二叉樹的中序遍歷和後序遍歷,求二叉樹的先序遍歷 輸入資料有多組,第一行是乙個整數t t 1000 代表有t組測試資料。每組包括兩個長度小於50 的字串,第乙個字串表示二叉樹的中序遍歷序列,第二個字串表示二叉樹的後序遍...