結構體和鍊錶

2021-08-03 04:36:56 字數 828 閱讀 8300

1)簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別(而結構體是),

陣列名稱是常量指標,所以不可以做為左值進行運算,所以陣列之間就不能通過陣列名稱相互複製了,即使資料型別和陣列大小完全相同。

定義結構體使用struct修飾符,例如:

struct test ;

2)鍊錶(linked list)是一種常見的基礎資料結構,是一種線性表,但是並不會按線性的順序儲存資料,而是在每乙個節點裡存到下乙個節點的指標(pointer)。由於不必須按順序儲存,

鍊錶在插入的時候可以達到o(1)的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o(n)的時間,而順序表相應的時間複雜度分別是o(logn)和o(1)。

在電腦科學中,鍊錶作為一種基礎的資料結構可以用來生成其它型別的資料結構。鍊錶通常由一連串節點組成,每個節點包含任意的例項資料(data fields)和一或兩個用來指向明上乙個/或下乙個節點的位置的鏈結("links")。鍊錶最明顯的好處就是,常規陣列排列關聯專案的方式可能不同於這些資料專案在記憶體或磁碟上順序,資料的訪問往往要在不同的排列順序中轉換。而鍊錶是一種自我指示資料型別,因為它包含指向另乙個相同型別的資料的指標(鏈結)。

鍊錶允許插入和移除表上任意位置上的節點,但是不允許隨機訪問。鍊錶有很多種不同的型別:單向鍊錶,雙向鍊錶以及迴圈鍊錶。

結構體鍊錶小結

引用自身的結構體,乙個結構體中有乙個或多個成員的基型別就是本結構體型別時,說明這個結構體可以引用自己,所以稱作引用自身的結構體。例如下面的結構體 struct link a p是乙個可以指向struct link型別變數的指標成員,這樣,a.p a就是合法的表示式。那麼,這有什麼意義呢?這樣的意義就...

C語言 鍊錶 結構體

目的 1.編寫手機 薄管理程式,用結構體實現下列功能 1 手機 薄含有姓名 宅電 手機3項內容,建立含有上述資訊的 簿。2 輸入姓名,查詢此人的號碼。3 插入某人的號碼。4 輸入姓名,刪除某人的號碼。5 將以上功能分別用子函式實現,編寫主函式,可以根據使用者的需要,呼叫相應的子函式。建議用結構體和鍊...

雙向鍊錶 結構體 指標

首先當然得了解單向鍊錶了 傳送門 首先,表中的各個元素稱作 結點 雙向鍊錶的結點時結構體,有資料本體,指向前一元素的指標prev以及指向後一元素的指標next組成。這些結構體通過指標構成乙個鍊錶,就形成了雙向鍊錶。struct node 另外,在表頭設定乙個特殊節點可以簡化鍊錶的實現,將這個結點稱為...