GTree 實現了平衡二元樹結構,在新增資料時會自動進行排序,並嘗試維持樹的高度與平衡,您可以利用Key來儲存資料至樹中,並利用Key來快速取得資料。 直接來看個簡單的例子:
#include <glib.h> 這個程式會建立一個平衡二元樹,利用指定的key_compare_func比較Key的大小,在這邊利用 g_strcmp0()來比較字串順序,程式中插入三筆資料,插入的資料會自動依Key排序,所以取回時會是排序後的結果:
GNode則是另一種允許您建立任意分枝節點的樹結構,其定義如下:
typedef struct {
gpointer data; GNode *next; GNode *prev; GNode *parent; GNode *children; } GNode; 其中parent、children為父子節點,prev、next是兄弟節點,其關係如下圖所示: |
Impr
|
GTK Gossip: GTree 與 GNode
最新推荐文章于 2024-05-21 14:23:17 发布