go之樹型結構深度理解

go之樹型結構深度理解

如果你是一個編程人員,或多或少對樹型結構都有一定的認識,我個人對樹型數據結構是又愛又恨。這篇文章主要講解一些關於tree的數據結構以及使用。

什麼是樹?

數組列表隊列隊列堆棧都是以一個集合的形式存儲數據,一般稱它們被稱爲 "線性"存儲結構。但當涉及到樹(trees)和圖(graphs)時,事情就會變得混亂,因爲數據不是以線性方式存儲的。

被稱爲非線性數據結構。事實上,你也可以說樹是分層數據結構,因爲數據是以分層的方式存儲的。

後面爲了講解方便統一叫tree

tree是由節點或頂點和邊組成的數據結構,沒有節點的樹被稱爲空樹,非空樹由一個根節點和許多層級的附加節點組成,是一個具有層次的結構。

下面通過一個例子來看一下什麼是 tree

在這裏插入圖片描述

上面圖中的數據結構是一個節點的組合,從A到F這些圓圈稱爲節點,有6個邊(edge)。雖然它的所有元素看起來都像構造了一棵樹,但節點A、D、E、F形成了一個閉環,所以這個結構不是一個有效的樹。

如果我們打破F和E之間的連接,並在F和G之間添加一個新的節點,叫做G的邊緣。

div

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章