資料結構基礎知識 1

2022-03-30 00:08:49 字數 2195 閱讀 9938

資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。

資料結構具體指同一類資料元素中,各元素之間的相互關係,包括兩個組成成分,資料的邏輯結構,資料的儲存結構。邏輯結構包括:集合、線性結構、樹形結構、圖形結構。儲存結構是指資料的邏輯結構在計算機儲存空間的存放形式,包括:順序儲存結構、鏈式儲存結構、索引儲存結構、雜湊儲存結構。

線性表

線性表是最基本、最簡單、也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。

線性表是乙個線性結構,它是乙個含有n≥0個結點的有限序列,對於其中的結點,有且僅有乙個開始結點沒有前驅但有乙個後繼結點,有且僅有乙個終端結點沒有後繼但有乙個前驅結點,其它的結點都有且僅有乙個前驅和乙個後繼結點。一般地,乙個線性表可以表示成乙個線性序列:k1,k2,…,kn,其中k1是開始結點,kn是終端結點。

在實際應用中,線性表都是以棧、佇列、字串、陣列等特殊線性表的形式來使用的。下面就簡單的介紹一下。

陣列(array)

在程式設計中,為了處理方便, 把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中, 陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。

棧(stack)

棧是只能在某一端插入和刪除的特殊線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。

佇列(queue)

一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列是按照「先進先出」或「後進後出」的原則組織資料的。佇列中沒有元素時,稱為空佇列。

其中,佇列中還有一種特殊的形式,那就是迴圈佇列。計算機中為充分利用向量空間,克服"假溢位"現象的方法是:將向量空間想象為乙個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列(circular queue)。佇列的操作特點是「先進先出」。迴圈佇列主要是頭指標、尾指標的使用,而且要掌握佇列空與滿的判定條件以及出佇列、入佇列操作的實現。

從儲存結構上劃分,線性結構又可分為順序表和煉表。下面簡單的介紹一下:

順序表

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。

元素在記憶體中是以順序儲存的,記憶體的區域是乙個連續的區塊。

鍊錶

鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。 相比於線性表順序結構,鍊錶比較方便插入和刪除操作。

鍊錶中是離散的、單獨的空間,通過邏輯上的指標聯絡起來,形成乙個整體。

未完待續。。。

資料結構基礎知識1

談到資料結構,心情就變得有些沉重了。聽到大多數的人談論資料結構的重要性,然而學了半年的自己並不知道自己學了什麼。在這個假期,我決定將自己一學期的學習情況整理一下。若察不正確之處,便會加以改正。我想先吐槽一下我們專業的課程安排 先學習了c 還沒有學習到一半,課程就要結束了,於是乎老師帶我們坐起了火箭。...

資料結構基礎知識

時間複雜度和空間複雜度 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...

資料結構基礎知識

一種資料的邏輯結根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存 鏈結儲存 索引儲存等,採用不同的資料結構,其資料處理的效率是不同的。線性表是一種常用的資料結構。在實際應用中,線性表都是以棧 佇列 字串 陣列等特殊線性表的形式來使用的。線性表是一種線性結構。線性表有順序儲存結構和鏈式儲存結構...