二叉樹的建立與遍歷

2022-10-10 06:30:12 字數 791 閱讀 9356

#include

using namespace std;

const int n = 1010;

int pre[n],in[n],post[n]; // 先序.中序.後序

int k;

struct node // 在結構體內構造乙個函式方便以後給結構體賦值,詳情請看——結構體建構函式

};void buildtree(int l, int r , int &t,node* &root)

}if(flag == -1) return;

root = new node(in[flag]); //給當前root建立乙個記憶體空間,讓root指向該空間的位址,則空間內的值即為root的value,且將in[flag]的值賦給value

t++;

if(flag>l) buildtree(l , flag - 1 , t , root->l); //遞迴思想寫不下自己去學一下,然後再把本題樣例拿草稿紙代入一下

if(flagr);

}void preorder(node *root)

}void inorder(node *root)

}void postorder(node *root)

}void remove_tree(node *root)

int main()

return 0;

}樣例:

輸入:9

1 2 4 7 3 5 8 9 6//先序

4 7 2 1 8 5 9 3 6//中序

輸出:7 4 2 8 9 5 6 3 1//後序

二叉樹的建立與遍歷 二叉樹遍歷模板)

初學二叉樹,感覺之前鍊錶掌握不熟練導致接受有點難,現在做一些總結。本題其實就是根據給出的前序遍歷 包括空子樹 寫出相應的前序 中序和後序遍歷。廢話不多說,先看看題目 description 下面給出了教材中演算法6.4所示的演算法。status createbitree bitree t retur...

二叉樹建立與遍歷

二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱為 左子樹 和 右子樹 二叉樹的每個節點最多只能右兩棵子樹,子樹有左右之分,次序不能顛倒。除了葉結點外每乙個結點都有左右子葉且葉子結點都處在最底層的二叉樹。假設二叉樹的高度為k,除第k層外,其他各層的節點數都達到最大個數。也就是第一層到第k 1層為...

二叉樹建立與遍歷

節點定義 class binnode binnode char data2 data data2 binnode char data2,binnode parent2 data data2 void insertasleft char data void insertasright char dat...