資料元素和資料元素之間的關係,也可稱之為資料的組織形式,包括3方面
邏輯結構:
集合 線性結構 1:1
層次結構(樹形結構)1:n
圖形結構(網狀結構)n:n
儲存結構:
順序儲存:講資料元素按照邏輯上的先後次序儲存到一片連續的記憶體中(一般用陣列實現)
鏈式儲存:講資料元素儲存在記憶體的不同位置(每個資料元素單獨存),利用指標來建立元素之間的聯絡(用指標)
索引儲存
雜湊儲存
運算:增刪改查等
順序表
特點:邏輯結構和儲存結構一致,儲存密度高,但是插入和刪除等運算複雜度較高,且要求系統提供連續的空間進行儲存。
常見:陣列
鍊錶特點:一種物理儲存單元上非連續、非順序的儲存結構,儲存密度低,插入和刪除的時間複雜度低。
定義乙個單鏈表節點(link_list)
typedef int typedate;
typedef struct node
linknode;
此時定義的僅僅只是鍊錶的乙個節點
單鏈表
最常見的鍊錶,有頭有尾。
單迴圈鍊錶
鍊錶的尾端指向鍊錶的頭。
雙迴圈鍊錶
鍊錶節點中有兩個指標,可以雙向尋找。
typedef struct dulnode
dulnode,*dulinklist;
棧特點:僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。
佇列特點:只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。 樹
由n(n>=1)個有限節點組成乙個具有層次關係的集合。把它叫做「樹」是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:
圖 由有窮、非空點集和邊集合組成,簡寫成g(v,e).
衡量演算法的標準:
C語言學習(十一) 資料結構體學習
include include 結構體關鍵字 struct 1.結構體的定義與使用 2.如何訪問結構體 目標,內部的變數 struct student 自定義型別 結構體右括號後面加 intmain 直接賦值 printf a d n a printf 結構體 socre d name s n st...
資料結構(C語言)學習之路(1) 緒論
小白學習資料結構,從基礎知識開始整理起。1.資料結構是什麼?2.資料結構在 用?3.資料結構怎麼用?小白在開始學習資料結構,提出了這三個問題,希望到學習完成之後可以解決這三個問題。小白從 大話資料結構 這本書開始學習。資料 是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計...
C語言學習 資料結構(棧的實現)
c語言學習 資料結構 棧的實現 1 棧的簡述 棧是一種資料結構,它可以用來存放數字,一次只能存放乙個數字。一次只能向棧裡加入乙個數字。可以棧裡獲得乙個數字,一次只能獲得乙個數字。棧裡的數字有前後順序,先進入的數字在前,後進入的數字在後。每次從棧裡獲得數字必須是最後放進去的數字。這種使用規則叫後進先出...