資料結構複習筆記(2)

2022-09-21 19:45:07 字數 1500 閱讀 3250

線性表是n個資料元素的有限序列。乙個資料元素可以由若干資料項組成,此時將資料元素稱為記錄,含有大量記錄的線性表稱為檔案。同一線性表中的元素必定具有相同特性(屬於同一資料物件)

線性表中有多個元素時,第乙個元素有且僅有乙個直接後繼,最後乙個元素有且僅有乙個直接前驅,其他元素有且僅有乙個直接前驅和乙個直接後繼

線性表的長度可按需增長或縮短。對於線性表的adt型別,通常有一些基本操作:構造空表、銷毀表、清空表、判斷表是否為空、查詢表中資料元素個數、查詢第i個資料元素的值、插入資料元素、刪除資料元素等

有序線性表的合併時,比較兩表頭部元素的大小,交替放入新的線性表中,最後可能有乙個表中有剩餘,將其依次放入新錶中即可。時間複雜度為$ o(lena+lenb)\(,其中\) lena\(與\) lenb$為兩表的長度

順序儲存

順序儲存就是用一組位址連續的儲存單元依次儲存線性表的資料元素,這種儲存方法稱為線性表的順序儲存結構/順序映像。對於順序儲存的線性表,只要知道了線性表的起始位置,其中的任一資料元素均可隨機訪問

顯然,乙個線性表的第i個元素$ a_i\(的儲存位置為\) loc(a_1)+(i-1)*l\(,其中\) loc(a_1)\(為第乙個資料元素的位置(即線性表的起始/基位址),\) l$為每個資料元素占用的儲存單元大小

鏈式儲存

鏈式儲存是用一組任意儲存單元來儲存線性表的資料元素(可以不連續),即邏輯上相鄰的在物理位置上不一定相鄰。這種儲存結構為非順序映像/鏈式映像雖然可以快速插入和刪除元素,但不能隨機訪問

對於鏈式儲存的線性表中的每個元素,不僅儲存其本身的資訊(資料域),還要儲存乙個指向其直接後繼的資訊(指標域)。資料域和指標域共同構成結點。多個結點鏈結為乙個鍊錶

在插入或刪除第i個結點時,都必須經過前i-1個結點進行索引

靜態鍊錶

使用一維陣列來描述線性鍊錶,不設高階程式語言中的指標,用陣列的下標來代替指標的功能。可以將陣列下標為0的視為「頭結點」,在其他結點的指標域中,用0表示「空指標」

事實上,靜態鍊錶所使用的陣列中,含有兩個鍊錶,分別用作儲存已經使用的結點和空閒的備用結點。

迴圈鍊錶

線性表中最後乙個結點的指標域指向頭結點。判斷線性表是否為空時,需要通過指標域是否指向頭結點來判斷

雙向鍊錶

雙向鍊錶中的結點有兩個指標域,乙個指向直接後繼,乙個指向直接前驅。顯然,雙向鍊錶也可以設計為首尾相接的。雙向鍊錶在插入和刪除時,要注意指標的修改

鏈式儲存應用於一元多項式

可以很好地解決只有高次項時,順序儲存造成的空間浪費問題。使用有序的鏈式儲存線性表可以用於一元多項式的表示和實現。為了優化運算時需要的空間,表示計算結果鍊錶中的結點可以從參與運算的多項式上「摘取」

兩個一元多項式相加、相減的演算法與有序線性表合併類似;兩個一元多項式相乘,可以分解為一系列加法,通過相加的演算法實現

資料結構複習筆記

資料 資料是資訊的載體,是描述客觀事物屬性的數 字元及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料是電腦程式加工的原料。資料元素 是資料的基本單位,通常作為乙個整體進行考慮和處理。資料項 乙個資料元素可由若干資料項組成,資料項是構成資料元素的不可分割的最小單位。資料物件 是具有相同性...

資料結構下課複習2

1 計算 calculate 指運用事先規定的規則,將一組數值變換為另一 所需的 數值的過程。一般要有乙個計算模型。2 演算法 algorithm 簡單說,就是解決問題的一種方法或過程,由一系列計算步驟構成 目的是將問題的輸入變換為輸出 即,它是乙個定義良好的計算過程,它以乙個或一組值作為輸入,並產...

資料結構複習筆記 1

為什麼要學習資料結構?看圖就能明白了!資料結構是什麼?資料結構課程體系 資料結構課程集中討論軟體開發過程中的設計階段 同時設計編碼和分析階段的若干基本問題。此外,為了構造出好的資料結構及其實現,還需考慮資料結構及其實現的評價與選擇。因此,資料結構的內容包括三個層次的五個 要素 如圖1.5 所示。資料...