ACM樹及二叉樹學習總結

2021-09-22 08:36:57 字數 621 閱讀 1219

樹的概念: 一棵樹是由n(n>0)個元素組成的有限集合,其中:

(1)每個元素稱為結點(node);

(2)有乙個特定的結點,稱為根結點或樹根(root);

(3)除根結點外,其餘結點能分成m(m>=0)個互不相交的有限集合t0,t1,t2,……tm-1。其中的每個子集又都是一棵樹,這些集合稱為這棵樹的子樹。

樹的儲存結構:方法1:陣列,稱為「父親表示法」。

const int m = 10; //樹的結點數

struct node

;node tree[m];

優缺點:利用了樹中除根結點外每個結點都有唯一的父結點這個性質。很容易找到樹根,但找孩子時需要遍歷整個線性表。

方法2:樹型單鏈表結構,稱為「孩子表示法」。每個結點包括乙個資料域和乙個指標域(指向若干子結點)。假設樹的度為10,樹的結點僅存放字元,則這棵樹的資料結構定義如下:

const int m = 10; //樹的度

typedef struct node;

typedef node *tree;

struct node

;tree t;

缺陷:只能從根(父)結點遍歷到子結點,不能從某個子結點返回到它的父結點。

學習還需繼續。

樹,二叉樹及演算法總結

滿二叉樹在同樣深度的二叉樹中葉子結點個數最多 1.葉子結點只能出現在最下兩層,且最下層的葉子結點都集中在二叉樹的左部 2.完全二叉樹中如果有度為1的結點,只可能有乙個,且該結點只有左孩子。3.深度為k的完全二叉樹在k 1層上一定是滿二叉樹。1 有n個節點的完全二叉樹的深度為 k l og2n k l...

ACM 二叉樹遍歷

題目1184 二叉樹遍歷 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 1562 解決 621 題目描述 編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹 以指標方式儲存 例如如下的先序遍歷字串 abc de g f 其中 表示的是空格,空格字元代表空樹。建立起此...

二叉樹學習總結

二叉樹節點類 public class treenode public object getdate public void setdate string date public treenode getlefrchild public void setlefrchild treenode lefr...