在做樹的遍歷的時候發現自己對實現樹的方法不太了解,也就是不知道怎麼把一棵樹的結構存到記憶體中,所以對樹的實現找了一些資料,自己也研究了一下。
首先,要想讓計算機正確的儲存你的「樹」,你要用一種和你**相匹配的輸入方式,我用的是採用廣義表表示的輸入法,例如:a(b(d,e),c(f,g))。
這個式子可以分為以下幾部分:
a(b,c): a是這個結構的根節點,b,c是a的兩個孩子。
a(b(d,e),c(f,g)):b,c分別是d、e和f、g的父節點。
a
/ \
b c
/ \ / \
d e f g
當用廣義表表示的方法輸入之後,就可以用下面的**來建立二叉樹:
void createbtree(struct btreenode** bt, char* string)
top++;
s[top] = p;
k = 1;
break;
}case
')':
top--;
break;
}case
',':k = 2;break;
default:}}
i++;
}}
資料結構 樹的實現(C語言)
1 樹的概念 樹形結構是節點之間以及分支關係定義的層次結構。作為一種重要的非線性結構,樹形結構中乙個節點最多只有乙個前驅節點,但是可以有多個後繼節點。2 樹的儲存結構 在計算機中,樹有多種的儲存方式,下面介紹一種動態的 左子 右兄 二叉鍊錶表示方法。include mytree.h include ...
資料結構 Java編碼實現樹
樹節點 public class treenode public void setleftnode treenode leftnode public void setrightnode treenode rightnode 前序遍歷 先取父節點,再去左子節點,右子節點 public void fro...
資料結構 樹
樹的概念 1.家族樹 在現實生活中,有入如下血統關係的家族可用樹形圖表示 張源有三個孩子張明 張亮和張麗 張明有兩個孩子張林和張維 張亮有三個孩子張平 張華和張群 張平有兩個孩子張晶和張磊。以上表示很像一棵倒畫的樹。其中 樹根 是張源,樹的 分支點 是張明 張亮和張平,該家族的其餘成員均是 樹葉 而...