回覆列表
  • 1 # JustinCHN

    節點就是一個結構化了的資料體,是利用其它資料型別按照需要的組合形式完成的自定義的一個數據組合。

    既然是自定義的組合,那麼表現出來就非常有意思了 - 可以只包含最基本的有用資料,也可以增加相對抽象的資料,還可以有其他自定義的資料體,即:節點。

    有節點需求的地方當然是此類資訊較多,希望加以有效的管理。多個節點如何安排相互之間的關係?這裡關於節點的定義本身就非常的考功夫了 - 未必能看出來定義者多厲害,但是基本上能看出來多麼的不太厲害,:-)

    簡單的同類節點可以直接塞到陣列中,利用天然的下標實現節點訪問;若節點內部資料成員有能定址下一個節點的能力,如C指標等實現方式,則可以形成單鏈表;若再增加一個回溯上一個節點的域,則可以形成一個閉環或雙鏈表;進而可以考慮一棵倒著生長的樹,或者十字連結串列等等。

    模型還是豐富的,但是需要結合實際的業務需要;業務需求是會變化/演化的,同時考慮今後是否易於擴充套件 - 這些可能強烈依賴於當初的節點的定義以及圍繞節點定義完成的計算;設法儘量的解耦,越鬆散擴充套件性越好些。

  • 2 # Techsnail

    學到圖,樹的時候你就理解了。

    舉個例子。我們的慣性思維是node裡面儲存的只是一個元素。但是結點裡可以包含多個屬性。一般資料結構中node結點包含data和next兩個屬性。其中node.data就是我們之前形成的慣性思維中的元素。而node.next則是一個指標,指向下一個結點。用於連線(你所說的連結串列就是這麼連線的)。

    建議:學了C語言的話可以嘗試用結構體struct去理解。面向物件的話。把node看成一個類。它裡面可以包含多個屬性,其中next用於連結下一個結點。。

  • 中秋節和大豐收的關聯?
  • 女生為什麼那麼費錢?