資料結構 演算法及線性表的總結

2022-08-22 12:48:11 字數 2558 閱讀 4864

1.線性結構是乙個資料元素的有序關係,掌握線性表的基本運算。

2.線性表的順序儲存是使用一塊位址連續的儲存空間,按照線性表中元素的邏輯順序依次存放相應元素。

3.線性表的鏈式結構是將線性表中的資料元素存放在一組位址任意的儲存節點,節點之間使用「鏈」進行連線。

4.鏈式結構中節點=資料元素+指標。資料元素:存放資料。指標:存放該節點下乙個元素的儲存位置。

5.順序儲存結構:支援隨機訪問,快速獲取第j列的值。鏈式儲存結構:靈活、不會造成儲存空間的浪費。

6.有序表,是一種線性表,其中所有元素以遞增或遞減方式有序排列。1.棧和佇列是限定插入和刪除只能在表的「端點」進行的線性表。

2.棧為後進先出線性表,只能在棧頂進行插入和刪除操作。

3.隊列為先進先出線性表,在隊頭進行刪除,隊尾進行插入操作。

4.鏈棧:插入和刪除只能在表頭進行、鏈棧中的結點是動態產生的,不考慮上溢問題、無需附加頭結點,棧頂指標就是煉表頭指標。

5.掌握中綴表示式與前、字尾表示式的代換。

6.掌握用棧來解迷宮的演算法。

7.遞迴與棧的關係。遞迴兩大特點:自我呼叫、必須有遞迴出口。

8.迴圈佇列判斷隊空:q.rear=q.front。判斷堆滿:(q.rear+1)%m=q.front。1.串是由零個或多個字元組成的有限序列,一般記為:s='a1a2a3···an'(n>=0)。

2.串的資料物件約束為字符集、串通常以:串的「整體」作為操作物件。

3.用一組位址連續的儲存帶院儲存串值的字串行,成為順序串,可用乙個陣列來表示。

4.儲存密度=(資料元素所佔儲存位)/(實際分配的儲存位)。

5.bf演算法(又稱古典的、經典的、樸素的、窮舉的),kmp演算法(特點:速度快)。

6.bf演算法最壞情況下時間複雜度為o(n*m).

7.掌握next值和nextval值的計算方法。

8.kmp演算法的優點:不需回溯,對於從外設讀入的龐大檔案很有效,可以邊腐乳邊匹配,無須回頭重讀。1.陣列是線性表的擴充套件,其表中的資料元素本身也是乙個資料結構。

2.陣列的特點:只有引用型操作,沒有加工型操作(插入和刪除)、陣列是多維 的結構,而儲存空間是乙個一維的結構。

3.矩陣可以用二維陣列來儲存。

4.對角矩陣:所有非零元素都計中在以主對角線為鍾心的帶狀區域中。

5.將指示「行」資訊的陣列cpot固定在稀疏矩陣的存 儲結構中,稱這種「帶行鏈結資訊」的三元組表為 行邏輯鏈結的順序表。

6.十字鍊錶:當矩陣的非零元個數和位置在操作中變化較大時, 不宜採用順序儲存結構來表示三元組的線性表。

7.廣義表又稱為列表(lists),被廣泛用於人工智慧等領域的 表處理語言lisp語言中。

8.廣義表是遞迴定義的線性結構,是乙個多層次的線性結構。

9.廣義表的結構特點:廣義表中的資料元素有相對次序、廣義表的長度定義為最外層包含元素個數、廣義表的深度定義為所含括弧的重數、廣義表可以共享、廣義表可以是乙個遞迴的表。

10.廣義表通常採用頭、尾指標的鍊錶結構。

#include#include#include#includeusing namespace std;

int main()

cout << s.size() << " ";

cout << s.top() << endl;

while (!s.empty())

s.pop();

} cout << "\n" << q.size() << " " << q.front() << " " << q.back() << "\n";

while (!q.empty())

return 0;

}

在寫這道題的過程中,對string的用法還不是很明確,一直在糾結該怎麼讀入一行的字元並且將它入棧,在老師發出的資料中進行了基礎學習,直到了string可以定義乙個字串,並且將它作為陣列使用,這樣就可以用乙個for迴圈將字串中的字元乙個個的入棧。

#include#includeusing namespace std;

int main()

while(!q1.empty())

for(int i = 0;i < s.length();i++)

}else

len = 0;}}

cout在寫這道題時並不清楚思路,該如何去計算乙個字串中的相連的數字元素的個數並從中篩選出最長串,本來想用乙個陣列來儲存每串連續數字元素的個數,並從中輸出最大的值,但是稍微有點麻煩,後來想到可以計算完乙個連續數字元素的個數後就和前乙個進行比較,然後用maxlen來表示目前最長串,首先判斷元素是否為數字,用len來計算當前連續數字元素個數,直到下乙個元素不為數字時,然後將len與maxlen比較,再讓len=0,重複迴圈,最後得出最長串的連續數字。

資料結構 演算法及線性表總結

1.演算法是對特定的問題求解步驟的一種描述。演算法描述有自然語言 流程圖 偽 重點掌握 2.通過時間複雜度和空間複雜度來評定乙個演算法的優劣。3.特性 有窮性 確定性 可行性 輸入 輸出。1.線性表分為順序表和煉表。2.順序儲存結構的特點在邏輯上相鄰 物理位置相鄰 可實現隨機儲存 快速訪問 3.鏈式...

資料結構 演算法及線性表總結

2.空間複雜度分析 與臨時變數所佔空間有關。3.遞迴演算法時間與空間複雜度 都應該寫出遞推式,通過求解遞推式來獲得時間複雜度和空間複雜度。1.順序表 有隨機訪問特性,但其演算法時間主要花費在刪除和插入元素時元素移動上。2.鍊錶 不需要移動元素,沒有隨機訪問特性,演算法時間主要花費在遍歷元素上。1.一...

資料結構線性表演算法總結及測試

資料結構線性表演算法總結及測試 define maxsize 100 順序表查詢 findelem sqlist l,int e 順序表插入 insertelem sqlist l,int p,int e 順序表刪除元素 deleteelem sqlist l,int p,int e 順序表初始化 ...