資料結構 二叉樹有遍歷的想法

2021-10-25 03:08:19 字數 1388 閱讀 6729

#include

#include

using

namespace std;

#define len 30

typedef

struct treenodetreenode;

//按照從左到右,從上到下給二叉樹賦值

treenode *

init

(int

*init_arr,

int lens)

else treearr[i]

=null;}

//再把他們串成鍊錶

int len=lens/2;

for(i=

0;ireturn treearr[0]

;}//先序遍歷

void

preorder

(treenode *head)

}//中序遍歷

void

inorder

(treenode *head)

}//後續遍歷

void

postorder

(treenode *head)

}//輸出二叉樹葉子節點

void

print_leaf_node

(treenode *root)

}//統計葉子節點個數:方法一

int leaf_count=0;

void

leaf_num1

(treenode *root)

}//統計葉子節點個數:方法二

intleaf_num2

(treenode *root)

else

if(root-

>lchild==

null

&&root-

>rchild==

null

)else

}//求二叉樹高度:先序遍歷

int depth=0;

void

pre_tree_depth

(treenode * head,

int h)

}int

main

(int argc,

char

const

*ar**)

;//0表示

head=

init

(init_arr,7)

;//傳陣列跟陣列的長度

preorder

(head)

;//先序遍歷輸出

cout

// cout// cout// cout// cout<<"葉子節點個數:"// cout<<"葉子節點個數:"// cout<<"二叉樹深度:"}

資料結構 二叉樹的想法

先序遍歷結果 abdce 中序遍歷結果 bdace 後序遍歷結果 dbeca 使用理由 二叉鍊錶不能夠直接得到結點在遍歷序列中的前驅和後繼資訊。線索二叉樹結構 這裡lchild和rchild都是指向結點的指標域 ltag 0,lchild域指示結點的左孩子 ltag 1,lchild域指示結點的遍歷...

mysql 遍歷二叉樹 資料結構 二叉樹遍歷

這篇博文主要是研究二叉樹遍歷的遞迴與非遞迴演算法,有興趣的小夥伴可以了解下!二叉樹的遞迴遍歷 深度優先遍歷 先來張圖,看看各結點遍歷時的情況 二叉樹深度優先遍歷總結 分別為第一次,第二次,第三次進入某個結點 先序遍歷 先訪問根結點,然後先序遍歷左子樹,最後先序遍歷右子樹 根 左 右 中序遍歷 先中序...

資料結構 遍歷二叉樹

資料結構實驗之二叉樹二 遍歷二叉樹 time limit 1000ms memory limit 65536kb submit statistic problem description 已知二叉樹的乙個按先序遍歷輸入的字串行,如abc,de,g,f,其中,表示空結點 請建立二叉樹並按中序和後序的方...