資料結構之樹 Tree

2021-08-22 07:18:35 字數 951 閱讀 8876

對於大量的資料,使用鍊錶的線性訪問的時間消耗很大。於是提出了樹的概念。樹的應用十分廣泛,作業系統的檔案目錄就是典型的樹形結構。大部分對樹的操作的時間複雜度可以被乾到o(logn)。

這裡介紹樹的孩子兄弟表示法,另外還有別的表示方法,有興趣可以自己查一下清華大學的教材。這裡的資料域使用int型別方便測試,更一般的抽象資料結構表示用elementtype。只需要定義樹的第乙個孩子,然後定義第二個孩子時用第乙個孩子的兄弟表示,第三個孩子用第二個孩子的兄弟表示,以此類推。

typedef struct treenode 

*ptrtreenode;

二叉樹是樹的一種,特點是每個結點的兒子不能多於兩個。

二叉查詢樹是二叉樹的一種,特點是

1. 若結點x的左子樹不空,則其左子樹上所有結點的值都小於等於結點x的值

2. 若結點x的右子樹不空,則其右子樹上所有結點的值都大於等於結點x的值

3. 結點x的左右子樹分別為二叉查詢樹

typedef struct treenode 

*tree;

二叉排序樹的資料結構定義和二叉樹的一樣,只是在增刪改查方式上有不同。

tree createtree()

else

returnt;}

void makeempty(tree t)

}treenode* find(int val, tree t)

else

else

}}treenode* findminbyrecursion(tree t)

else

if(t->left==null)

else

}treenode* findmaxbynotrecursion(tree t)

}return

t;}

= = 。 沒寫完

基本資料結構 樹(tree)

基本資料結構 樹 tree c 無論是鍊錶,棧還是佇列,它們都是線性結構的,每個節點的左邊最多乙個節點,右邊也最多乙個節點,對於大量的輸入資料,線性表的訪問時間太慢,不宜使用。這裡我要說一種非線性的資料結構,其大部分操作的執行時間平均為o logn 我們涉及到的這種資料結構叫做樹。在電腦科學中,樹是...

基本資料結構 樹(tree)

基本資料結構 樹 tree c無論是鍊錶,棧還是佇列,它們都是線性結構的,每個節點的左邊最多乙個節點,右邊也最多乙個節點,對於大量的輸入資料,線性表的訪問時間太慢,不宜使用。這裡我要說一種非線性的資料結構,其大部分操作的執行時間平均為o logn 我們涉及到的這種資料結構叫做樹。在電腦科學中,樹是非...

資料結構31 樹 Tree 詳解

複製廣義表資料結構中的樹 樹是資料結構中比較重要也是比較難理解的一類儲存結構。本章主要主要圍繞二叉樹,對樹的儲存以及遍歷做詳細的介紹,同時還會涉及到有關樹的實際應用,例如構建哈弗曼編碼等。1.資料結構中的樹儲存結構 2.二叉樹順序儲存和鏈式儲存的c語言 實現 3.二叉樹前序遍歷 中序遍歷和後序遍歷及...