1. C語言中的數據結構.md


C語言內建數據結構類型##

整型##

整型數據是最基本的數據類型,不過從整形出發衍生出好幾種integer-like數據結構,譬如字符型,短整型,整型,長整型。他們都是最基本的方式來組織的數據結構,一般是幾位bytes,首個bit也許是符號位,剩下的(從大小端)讀出來作為數值。

浮點型##
指針型##

[========]

C語言聚合數據結構類型##

數組##
數組名字##

數組名字在兩種情況下是作為非第一個成員的指針常量,這里的兩個情況是取數組名的地址:這是取數組的地址,不是取第一個成員的地址,第二個情況是sizeof的操作,這個操作是計算這個數組的總大小,而不是第一個成員的。
PS:指針的加法運算是需要按照指針指向的數據類型來遞加。

下標引用和間接訪問對比##
作為實參傳遞和作為形參聲明##
初始化##
長度計算##
結構體##
聯合##
枚舉##
鏈表##

鏈表是許多更加高級的數據結構的基礎,鏈表是一串鏈條似的結構體節點通過指針的方式鏈接起來,鏈表有分為單向鏈表和雙向鏈表。
鏈表有個一個head node,有一個cursor。這個鏈表最大的問題在於每次檢索node或者node里面的具體member,都是從head node開始逐一retrieve的。

初始化##
索引##
插入和追加##

單向鏈表:

  1. 對於鏈表的插入,一種方式是采用常規的pervious/next node points的方式來breakup,再手拉手牽起來。
  2. 另一種方式是巧妙的使用指向指針的指針來實現,非常巧妙,以遇到指針的指針的時候要特別注意,在**linkp傳遞過來之后,*linkp只是一個新產生的臨時變量
    雙向鏈表:
    一種是規則串聯的雙向鏈表,還有無法規則串聯起來(混亂的)雙向鏈表。
    "Pointers on C"這本書對於鏈表的講解不是很詳細,書中提到的的鏈表需要注意的是鏈表尾部需要及時判斷,需要插入的書在鏈表頭或者尾該怎么處理。
修改##
刪除##
排序和銷毀##

真正理解這個概念可以參考Linux開發基礎篇,這個在Linux里面是重要基礎知識
[========]

[========]

C語言抽象數據結構##

棧##
隊列##

常用的是隊列,這個在網絡編程中常常用作收發包buffer的實現。實現隊列的方式主要有靜態數組,動態數組和鏈表,尤其是以鏈表為常用。

樹##
圖##

[========]

數據屬性##

這是一好的數據結構,這離得人們都說這個數據結構是好的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM