資料結構 二叉樹

2021-09-24 20:30:47 字數 1510 閱讀 6666

二叉樹是資料結構中乙個非常重要的思想,當二叉樹為滿二叉樹或完全二叉樹時可以採用順序結構儲存,儲存位置和邏輯位置有聯絡,而當乙個二叉樹不是以上情況時,就不能採用上面性儲存了,一般採用孩子表示法:

1,二叉樹孩子表示法資料結構:

#ifndef _tree_h_

#define _tree_h_

#include #include #define max 100

typedef struct binodebinode,*bitree;

typedef struct stackseq;

void pre(bitree t);

void mid(bitree t);

void post(bitree t);

bitree pop(seq *s);

void push(seq *s, bitree t);

void pretree(bitree t);

void intree(bitree t);

void posttree(bitree t);

void greattree(bitree t);

void tiertree(bitree t);

#endif

2:採用遞迴的思想遍歷二叉樹:

//先序遍歷

void pretree(bitree t)

//中序遍歷

void intree(bitree t)

//後序遍歷

void posttree(bitree t)

3:借助棧採用非遞迴方式來遍歷二叉樹

//入棧操作  

void push(seq *s, bitree t)

//出棧操作

bitree pop(seq *s)

else

}//迭代先序遍歷二叉樹 棧

void pre(bitree t)

else }}

//迭代中序遍歷二叉樹

void mid(bitree t)

else

}}//迭代後序遍歷二叉樹

void post(bitree t)

else if (s.tag[s.top - 1] == 1)

else

}}

4:借助佇列層次遍歷二叉樹

//層次遍歷 佇列

void tiertree(bitree t)

if (b->rchild != null)

}}

5:採用遞迴的思想先序構建二叉樹

//先序構建二叉樹

void greattree(bitree *t)

else

(*t)->data = c;

greattree(&((*t)->lchild));

greattree(&((*t)->rchild));

}}

資料結構 二叉樹 反轉二叉樹

include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...

《資料結構》 二叉樹

二叉樹 是 n個結點的有限集,它或為空集,或由乙個根結點及兩棵互不相交的 分別稱為該根的左子樹和右子樹的二叉樹組成。二叉樹不是樹的特殊情況,這是兩種不同的資料結構 它與無序樹和度為 2的有序樹不同。二叉樹的性質 1 二叉樹第 i層上的結點數最多為 2 i 1 2 深度為 k的二叉樹至多有 2 k 1...

資料結構 二叉樹

1.二叉樹 二叉樹是一種特殊結構的樹,每個節點中最多有兩個子節點,如圖1所示 圖1 二叉樹 在圖1中的二叉樹裡,a c有兩個子節點,b d有乙個子節點。對於二叉樹還有圖2中的以下情況 圖2 二叉樹的特殊情況 在博文中還介紹了滿二叉樹和完全二叉樹還有其他的特殊二叉樹。2.二叉樹的實現 有兩種實現方式,...