軟體設計師考試 第三章 資料結構 線性結構

2021-10-24 18:07:38 字數 2446 閱讀 4601

(二)棧和佇列

(2)棧的儲存結構

2.佇列

(2)佇列的儲存結構

(3)佇列的應用

(三)串

2.串的儲存結構

3.串的模式匹配

線性結構是一種基本的資料結構,主要用於對客觀世界中具有單一前驅和後繼的資料關係進行描述。

特點是資料元素間呈現一種線性關係,即元素「乙個接乙個排列」。

常採用順序儲存和鏈式儲存。

乙個線性表是n(n>=0)個元素的有限序列,通常表示為(a1,a2,...,an)

特點:線性表的儲存結構分為順序儲存和鏈式儲存。

(1)順序儲存

順序儲存:指用一組位址連續的儲存單元依次儲存線性表中的資料元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。

使用這種儲存方式,元素間的邏輯關係無須占用額外的空間來儲存。

儲存位置計算,第i個元素ai的儲存位置:

loc(ai)=loc(a1)+(i-1)*l
其中,l是表中每個元素所佔空間的位元組數。

優缺點:

(2)鏈式儲存

資料域指標域

其中資料域用於儲存資料元素的值,指標域儲存當前元素的直接前驅或直接後繼的位置資訊,指標域中的資訊稱為指標(鏈)。

儲存各資料元素的結點的位址不要求連續,因此在儲存資料元素的同時必須儲存元素之間的邏輯關係。

棧和佇列是程式中常用的兩種資料結構,它們的邏輯結構和線性表相同,特點是運算有所限制。

是「後進先出(last in first out,lifo)」,佇列是「先進先出(first in first out,fifo)」。

(1)棧的定義及基本運算

1)棧的定義

棧是只能通過訪問它的一端來實現資料儲存和檢索的一種線性資料結構。

在棧中進行插入和刪除操作的一端稱為棧頂(top),相應地,另一端稱為棧底(bottom)。不含資料元素的棧稱為空棧。

2)棧的基本運算

(2)棧的儲存結構

1)順序儲存

需要預先定義棧的儲存空間,棧的空間容量有限。

2)棧的鏈式儲存

用鍊錶做為儲存結構的棧也稱為鏈棧。

不必另外設定頭指標,鍊錶的頭指標就是棧頂指標。

3)棧的應用

棧的應用包括表示式求值,括號匹配等。

在計算機語言的實現以及將遞迴過程轉變為非遞迴過程的處理中,棧有重要的作用。

(1)佇列的定義及基本運算

1)佇列的定義

佇列是一種先進先出的線性表,它只允許在表的一端插入資料元素,而在表的另一端刪除元素。

在佇列中,允許插入元素的一端稱為隊尾(rear),允許刪除元素的一端稱為隊頭(front)。

2)佇列的基本運算

(2)佇列的儲存結構

1)佇列的順序儲存

佇列的順序儲存結構又稱為順序佇列,它是利用一組位址連續的儲存單元存放佇列中的元素。

由於佇列中元素的插入和刪除限定在表的兩端進行,因此設定隊頭指標和隊尾指標,分別指出當前的隊頭和隊尾。

元素出隊時只修改隊頭指標;儲存空間提前設定,所以隊尾指標會有乙個上限值。

2)佇列的鏈式儲存

佇列的鏈式儲存也稱為鏈佇列。

為了便於操作,給鏈佇列新增乙個頭結點,並令頭指標指向頭結點。

因此,隊列為空的判斷條件時頭指標和尾指標的值相同,並且均指向頭結點。

(3)佇列的應用

佇列機構常用於處理需要排隊的場合,例如作業系統中處理列印任務的列印佇列、離散事件的計算機模擬等。

串(字串)是一種特殊的線性表,其資料元素為字元。

在計算機運算時,常把乙個串作為乙個整體來處理。

(1)串的定義

串是僅由字元構成的有限序列,是一種線性表。

(2)串的幾個基本概念

(3)串的基本操作子串的定位操作通常稱為串的模式匹配,它是各種串處理系統中最重要的運算之一。

子串也稱為模式串。

(1)樸素的模式匹配演算法

也稱為布魯特-福斯演算法。

基本思想是從主串的第乙個字元起與模式串的第乙個字元比較,若相等,則繼續逐一對字元進行後續的比較,否則從主串第二個字元起與模式串的第乙個字元重新比較,直到模式串中每個字元依次和主串中乙個連續的字串行相等時為止,此時稱為匹配成功,若不能在主串中找到與模式串相同的子串,則匹配失敗。

(2)改進的模式匹配演算法

又稱為kmp演算法

當匹配過程**現相比較的字元不相等時,不需要回退主串的字元位置指標,而是利用已經得到的「部分匹配」結果將模式串向右「滑動」盡可能遠的距離,再繼續進行比較。

軟體設計師 第三章資料運算(查詢)

一 順序查詢 c 模板bool search int l,int r 二 二分查詢模板1 將待查詢區間分成 l,mid 和 mid 1,r c int demo1 int l,int r 模板2 將待查詢區間分成 l,mid 1 和 mid,r c int demo2 int l,int r 三 雜...

軟體設計師 資料結構

資料結構是指資料元素的集合及元素間的相互關係和構造方法。元素之間相互關係是資料的邏輯結構,資料元素及元素之間關係的儲存稱為儲存結構。資料結構是演算法設計的基礎,設計合理的資料結構可使演算法簡單高效。資料結構按邏輯關係分為線性結構和非線性結構。非線性結構又可分為樹結構和圖結構。一 線性結構 線性結構的...

軟體設計師中級之第三章 資料庫系統

建議關注收藏,持續更新中 檢視級 外模式 表級 概念模式 檔案級 內模式 外模式 概念模式對映 概念模式 內模式對映 需求分析 形成需求說明書,資料流圖,資料字典 概念結構設計 er模型 邏輯結構設計 物理設計 長方形 實體 橢圓 屬性 菱形 聯絡 長方形加兩豎線 弱實體 乙個實體轉換為乙個關係 聯...