學霸之路之資料結構

2021-08-16 20:42:11 字數 1196 閱讀 6226

本人是南昌大學軟體工程專業的學生,大學期間渾渾噩噩混日子。臨畢業才發現自己一無所有。現在開始從零開始複習程式設計基礎

2023年3月13日

1.資料結構三要素:邏輯結構,儲存結構,運算集合。

2.對於乙個邏輯結構b=(k,r),如果它只有乙個開始結點和乙個結束結點,而其他的每乙個結點有且僅有乙個前驅和乙個後繼,稱為線性結構。如果它有乙個開始結點,多個終端結點,每乙個結點有且僅有乙個前驅,稱為樹形結構。如果每個結點都可以有多個前驅和後繼則是圖形結構。樹形結構和圖形結構都是非線性結構。

3.資料的儲存結構即資料在計算機中的儲存方式,主要由以下四種

順序儲存:順序儲存通常用於儲存具有線性結構的資料。將邏輯上相鄰的結點儲存在連續的區域m的相鄰儲存單元中,使得邏輯相鄰的結點一定是物理位置相鄰。這種映像是通過物理上儲存單元的相鄰關係來體現結點間相鄰關係的。

鏈式儲存:通過指標將不相鄰的物理儲存空間連線到一起

索引儲存

4.通常把資料本身所佔的儲存空間的大小與整個資料結構所佔的儲存空間的大小之比稱為資料結構的儲存密度。

5.一般而言,資料的運算包括插入、刪除、檢索、輸出和排序。(輸出:將乙個結構中所有結點的值列印輸出)。

6.演算法是求解問題的一種方法或乙個過程。更嚴格地講,演算法是由若干條指令組成的有窮序列,並滿足以下5個特徵:

1)有窮性  演算法的執行必須在有限步內結束

2)確定性  演算法的每乙個步驟必須是確定的,無二義性

3)輸入      演算法可以有0個或多個輸入

4)輸出      演算法一定有輸出結果

5)可行性   演算法中的運算都必須是可以實現的

程式是用計算機語言表達的求解乙個問題的一系列指令的集合,它和演算法的主要區別是,演算法具有有窮性,程式不需要具備有窮性。有的程式不在有限的時間內終止,如乙個作業系統正常清空下永遠不會終止。

7.演算法的優劣主要由演算法執行的時間和所需要的儲存空間來衡量。演算法的時間複雜度採用演算法執行過程中基本操作的執行次數,即計算量來度量。一些具體的函式的複雜度表示:

35               o(1)

2n+7           o(n)

n^2+10       o(n^2)

2n^3           o(n^3)

演算法一般只比較量級,不比較細微差別。 按數量級遞增排列,常見的演算法的時間複雜度有 o(1)8.在乙個長度為n的順序表中插入(刪除)乙個元素平均需要移動表中的一半元素。該演算法的時間複雜度是o(n)。

學霸筆記 資料結構基礎知識大全

一 學習知識點 1 順序表 鍊錶 2 順序棧 鏈棧 3 順序佇列 鏈式佇列 4 樹5 圖 雜湊表 二 學習內容 1 1 順序表 簡記 立個flag標記最後有效元素的位置。特點 查詢快,刪 增慢。插入的元素從前面逐個插入。2 鍊錶 頭插 尾插。單向或雙向迴圈鍊錶要注意頭結點與尾節點的連線 在鍊錶操作中...

彤彤的學霸養成之路 Linux

linux基礎 1.新建目錄 資料夾 mkdir 目錄名 2.刪除目錄 rmdir 目錄名 3.新建檔案 vi 檔名 4.更改檔名或更改檔案屬性 mv 檔案原名 新名 5.退出終端 exit 6.vi有三種模式 命令模式 編輯模式 末行模式,採用vi 檔名的方式進入vi以後是命令模式,輸入i進入編輯...

學資料結構堆襸 學資料結構有多痛苦?

同為女生,感覺資料結構算還好,理由大概是因為堅信它有用吧 畢竟當自己排序不再只會冒泡 存資料不再只會陣列的時候還是蠻爽的。除了個人肉眼可見的提公升這一正向激勵外,上課老師也經常強調實用性 效率 走上崗位企業要的是什麼,應用性極強讓我數構課偶爾困得半死也不敢像高數一樣直接睡覺 反而有種想學好的使命感 ...