二叉樹節點資料結構 練習 5 二叉樹的建立 遍歷

2021-09-06 09:55:43 字數 1895 閱讀 6629

ps:今天上午,非常鬱悶,有很多簡略基礎的問題搞得我有些迷茫,哎,**幾天不寫就忘。目前又不當coo,還是得用心記**哦!

二叉樹是資料結構的最主要的內容之一,之所以引入二叉樹,是因為精良的資料結構非常有助於資料的排序,查詢等操作,也是在空間和效率上做個平衡!!

二叉樹的定義:每個節點至多有倆顆子樹(即二叉樹中不存在度大於2的節點),並且,二叉樹的子樹有閣下之分,其次序不能恣意顛倒。(摘自《資料結構 c語言》嚴蔚敏 版,如有維權,可傳送至:[email protected],本人將當即刪除)

形如:

節選自:《資料結構》 嚴蔚敏 圖6.4

二叉樹的分類:滿二叉樹,完全二叉樹,一般二叉樹(暫且列舉簡略的)。

(a)滿二叉樹,,根節點的度為1,葉節點的度為0,其餘節點的度為2.

(b)完全二叉樹:懂得上很簡略,在滿二叉樹的基礎上,去掉序號靠後的節點,注意必須從倒數第乙個點算起。b 就是,而c,d 都不是。因此c,d只是一般的二叉樹。

二叉樹的幾個主要術語: 度,深度,根節點,雙親,葉節點,子樹。

度:每個節點可以有的子節點的個數。深度:層數;根節點:最頂層的那個點;雙親:其實是乙個節點,如(a)中4和5的雙親是2;葉節點:度為0的節點;子樹:如(a),做標記的部份是1的子樹。

樹的相干性質:1,第i層上至多有2的(i-1)次方個節點;

2,深度為k的二叉樹至多有2^k-1個節點;

3,度為0 的節點數n0,度為2的節點數n2,則n0=n2+1;

4,主要是關於節點之間的位置關係,囉嗦一堆,其實很簡略,就不再貼出來了。

樹的建立和遍歷:

包含前序 中序  和後序 ,其實就是元素拜訪的次序,比如如上圖 (d):前序 124536 ,  中序:425136 , 後序: 452631。簡略畫畫就能夠了。

**如下:

每日一道理

生命,是一場漫長的棋局。這盤棋沒有獵獵西風,沒有四起狼煙,只有在取捨和進退中抉擇。只有像棋中的小卒那樣,勇往直前,毫不退縮沿著溝溝坎坎的人生之路,艱難而執著的求索,前進,才會譜寫人生最壯麗的強者之歌。

/*

email:[email protected]

*/#includeusing namespace std;

struct tnode

;typedef tnode* bitree;

void initbitree(bitree& t)

} }//前序拜訪

void preorder(bitree & t)

}//中虛拜訪

void inorder(bitree &t)

}//後續拜訪

void postorder(bitree &t){

if(t)

{ postorder(t->lchild);

postorder(t->rchild);

cout<

輸入:124##5##3#6

可見,與之前手工推導結果一致,注意一定不要漏了 #,否則 不但輸出結果有誤,而且 不能畸形如期執行

文章結束給大家分享下程式設計師的一些笑話語錄: 3g普不普及現在已經不是看終端了,而是看應用,有好的,便宜實用的應用,花1000多買個能用的智慧型手機應該不是什麼難事。反過來說,你200元拿乙個智慧型手機,沒有好的應用,看個電影要幾十元,也是沒人用3g。

--------------------------------- 原創文章 by

二叉樹和節點

---------------------------------

完全二叉樹節點數

題目 給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。方法 1 遞迴o n 演算法 int nodenum struct treenode head return 1 nodenum head left nodenum hea...

完全二叉樹節點數

給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。package main import nc tools type treenode struct param head treenode類 return int整型 func ...

二叉樹節點數量關係

node 表示一棵樹節點總數量 node1 表示度為1的節點數量 node2 表示度為2的節點數量 leaf 表示葉子節點的數量 line 表示一棵樹中莖 也就是兩個節點之間的連線 的數量 顯然 node 1 line node node1 node2 leaf line node1 2 node2...