學習筆記之資料結構基礎知識點及個人理解

2021-09-11 22:38:39 字數 2305 閱讀 3198

1.資料結構

a)個人見解:姑且認為資料結構是資料間的聯絡、資料的組織形式,對資料的基本操作演算法:增、刪、查、改、排,以及研究演算法的複雜度的研究。若有錯誤,日後再修正。

b)資料結構在描述資料間的聯絡時,則稱為邏輯結構;

邏輯結構的型別:

非線性的有:集合;

樹:不包括根結點和終端結點的其他結點,都有唯一的父結點和子結點;

圖;線性:不包括頭結點和終端結點的其他結點,都有唯一的前驅和後繼);

資料結構在表示資料在計算機儲存組織形式時,則稱為物理結構;如鍊表就是種物理結構。

物理結構(亦叫儲存結構)的型別:

順序儲存結構:資料元素儲存在位址連續的一段記憶體中,通過相對位址完成對資料元素的操作;

鏈式儲存結構:資料元素在記憶體中的位址可能是連續的,也可能是不連續的,儲存的資料報括資料域和指標域,通過指標實現對資料元素的操作;

索引儲存結構:資料元素儲存在位址不連續的記憶體中,並建立乙個索引表來儲存資料元素的位址;

雜湊儲存結構:資料元素在記憶體中的位址是連續的,通過雜湊函式根據關鍵碼來計算出雜湊值;(尚未完全理解,待補充);

2.資料元素、資料項、資料物件三者的聯絡

假設一條單向鍊錶,其結點儲存的資料是學生的基本資訊:姓名、學號、年級。

資料物件由資料元素組成,資料元素則由資料項組成。

「姓名」、「學號」、「年級」分別為資料項,由三個資料項組合而成的「姓名、學號、年級」則為乙個學生這樣的資料元素,由許多個這樣的學生結點組合而成的是資料物件。

資料項是資料物件這個系統裡最小的組成,不可再將進一步分解,如果將資料項分解,研究資料項就沒有意義了,比如將「姓名」分解,分解後的「姓名」就是單一的文字。

3.資料結構的形式定義

資料結構的名稱 = (d,s);其中d是資料物件,s是資料間的關係的有限集合;

d =

s =

4.演算法可以沒有輸入,但是一定要有輸出,沒有輸出的演算法肯定不能作為解決的「靈魂」。正確的演算法是具有相容、容錯能力

的,也就是演算法的結構是較完整的,思考演算法的時候,可以先把演算法的核心搞定,不考慮演算法的容錯能力,容錯能力是在完成了演算法的核心之後,再來考慮的。

5.影響演算法的時間複雜度的因素:演算法、問題規模、硬體。

演算法的時間複雜度的計算:

1.事後統計:在程式執行的時候計算,不常用;

2.事前分析估算:以基本語句的重複執行次數為引數,通過o(n)來衡量t(n);

第二種方法的計算要點:

step1:找到最深層的且為演算法核心的基本語句;

step2:根據條件得到對求和變數的求和公式;

step3:按照層次,一層一層寫出到達基本語句的∑;

step4:求和得到計算結果,去掉與n同級別的數字即運算子,最終結果是求n;

6.不同種類運算子的優先順序:算術》關係》邏輯》賦值。

7.線性表的表示:線性表名稱=(資料元素a,資料元素b,…);

8.順序線性表的實現

相關概念:a)隨機訪問:獲取資料元素,不需要從頭遍歷的操作方式;

b)位置與下標的區別:位置從1開始,而下標從0開始;

順序線性表型別的宣告:

struct 順序線性表的名稱

基本運算的宣告:

a)int initlist(順序線性表的引用);

//核心:使用malloc函式分配初始空間,返回位址給data;

b)voiddestroylist(順序線性表的引用);

//核心:使用free函式釋放data所指的空間;

c)void clearlist();

//核心:將length置為0即可;

d)int listempty(順序線性表的引用);

//核心:看length是否為0;

e)int getelem(順序線性表的引用,int i,elemtype e);

//核心:將下標為i-1的資料元素賦給e所指的空間;

f)int locateelem(順序線性表的引用,要查詢的資料元素elemtype e);

//核心:遍歷順序線性表,若有e,則返回其位置;

g)int insertelem(順序線性表的引用,要插入的位置int i,elemtype e);

//核心:右移。若順序線性表的記憶體空間已滿,則使用realloc(voidp,調整後的大小)函式重新調整順序線性表的容量;另外插入的位置可不是隨意的,注意不可以破壞順序的連續特性;

h)int delelem(順序線性表的引用,int i);

//核心:左移;

i)順序線性表的優缺點:

缺點:插入、刪除平均要移動約一半的元素,其時間複雜度為o(1)或o(n);長度不好分配;

優點:查詢比較高效,可隨機訪問;

基礎知識點總結 資料結構

準備筆面試期間做了一些基本知識點的總結,分享一下 1 邏輯結構 物理結構。2 演算法5大特性。4 順序 鏈式儲存。鍊錶 棧和佇列 串 1 鍊錶的操作 增刪改查 2 靜態 迴圈 雙向鍊錶。3 棧的操作及儲存方式。4 遞迴 斐波那契數列。5 棧的中 字尾。6 佇列的操作及儲存方式。7 迴圈佇列空 滿判斷...

資料結構之基礎知識

基本概念和術語 1 資料元素是資料的基本單位。2 資料項是資料不可分割的最小單位。3 資料結構及其形式定義。四種基本結構 集合 線性結構 樹形結構 圖 網 狀結構 4 資料結構的 邏輯結構 抽象的,與實現無關 物理結構 儲存結構 順序映像 順序儲存結構 位置 相鄰 非順序映像 鏈式儲存結構 指標表示...

html css基礎知識點筆記

簡單回憶了一下html css基礎 網頁標題 定義編碼格式,如 utf 8,gb2312,gbk eg 用於匯入css樣式檔案 常用標籤 2 嵌入樣式 3 匯入樣式 型別 字型型別 font family 字型渲染 text shadow 字型大小 font size 字型風格 font style...