資料結構(二)

2021-09-11 22:37:34 字數 1193 閱讀 6370

最近在看coursera上的慕課,感覺還挺簡潔的,推薦一下:

資料結構與演算法

而且有配套的slides可以學習。

線性表的概念

表目:線性表中的元素(可包含多個資料項,記錄)

空表:長度為零的線性表。

線性結構

二元組b=(k,r)k為元素,r為關係

邏輯關係:前驅/後繼,其性質為:

線性表邏輯結構包括:長度 表頭 表尾 當前位置

線性結構的性質為:

線性表分類

按訪問方式劃分

直接訪問型、順序訪問型、目錄索引型

查詢元素快速

插入、刪除元素較慢

儲存效率高

需要預先知道最大長度

需要連續儲存空間

2.3 鍊錶

分類:單鏈 雙鏈 迴圈鏈

儲存節點 = 資料域 + 指標域

雙鏈表(double linked list)

元素 = prev + data + next

迴圈鍊錶(circularly linked list)

將單鏈表/雙鏈表的頭尾結點相連

沒有增加額外開銷 更方便

注意:單鏈表尾結點:an-1 -> next = null,但迴圈鍊錶為:an-1 -> next = head

2.4 順序表和煉表的比較

順序錶鏈表

儲存資料特點

適合儲存靜態資料

適合儲存動態資料

插入、刪除操作

速度慢,時間複雜度o(n)

速度快,時間複雜度o(1)

查詢操作

速度快,時間複雜度o(1)

速度慢,時間複雜度o(n)

儲存結構

儲存需要連續空間

儲存使用動態空間

儲存效率

儲存效率高

每個元素都有結構性儲存開銷

長度估計

需要預先估計最大長度

無需事先了解線性表長度

資料結構 二

字串處理 strlen 用來計算字元的長度,並不包括結束字元 0 空字元長度為0 1 include 2 3 int strlen char string 4 10 int main 11 strcpy char str1,char str2 用來拷貝字串,把str2每個字元都拷貝到str1中,直到...

資料結構(二)

1.順序表和煉表綜合 在遞增有序的順序表中程式設計實現a a b c typedef intelemtype include sqlist.h 即為資料結構 一 順序表部分 include int main else continue else continue output mylist1 sys...

資料結構 (二)

第四章 樹和二叉樹 1 對於具有層次結構的資料需要用樹形結構來描述。2 樹形結構中乙個結點可以有乙個或多個直接後繼。3 樹是n個結點的有限集合,滿足 當n 0時,稱為空樹 當n 0時,有且僅有乙個稱為根的結點,除根結點外,其餘結點分為m m 0 個互不相交的非空集合,這些集合中的每乙個都是一棵樹,稱...