人們常說資料結構,面試的時候也常被問道資料結構相關的問題,到底什麼是資料結構?
資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。
資料結構在計算機中的表示(映像)稱為資料的物理(儲存)結構。它包括資料元素的表示和關係的表示。資料元素之間的關係有兩種不同的表示方法:順序映象和非順序映象,並由此得到兩種不同的儲存結構:順序儲存結構和鏈式儲存結構。順序儲存方法:它是把邏輯上相鄰的結點儲存在物理位置相鄰的儲存單元裡,結點間的邏輯關係由儲存單元的鄰接關係來體現,由此得到的儲存表示稱為順序儲存結構。順序儲存結構是一種最基本的儲存表示方法,通常借助於程式語言中的陣列來實現。鏈結儲存方法:它不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關係是由附加的指標字段表示的。由此得到的儲存表示稱為鏈式儲存結構,鏈式儲存結構通常借助於程式語言中的指標型別來實現。索引儲存方法:除建立儲存結點資訊外,還建立附加的索引表來標識結點的位址。雜湊儲存方法:就是根據結點的關鍵字直接計算出該結點的儲存位址。
資料結構中,邏輯上(邏輯結構:資料元素之間的邏輯關係)可以把資料結構分成線性結構和非線性結構。線性結構的順序儲存結構是一種隨機訪問的儲存結構,線性表的鏈式儲存結構是一種順序訪問的儲存結構。線性表若採用鏈式儲存表示時所有結點之間的儲存單元位址可連續可不連續。邏輯結構與資料元素本身的形式、內容、相對位置、所含結點個數都無關。
陣列(array)
在程式設計中,為了處理方便, 把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中, 陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。
棧(stack)
是只能在某一端插入和刪除的特殊線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。
佇列(queue)
一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。
鍊錶(linked list)
是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。
樹(tree)
是包含n(n>0)個結點的有窮集合k,且在k中定義了乙個關係n,n滿足 以下條件:
(1)有且僅有乙個結點 k0,他對於關係n來說沒有前驅,稱k0為樹的根結點。簡稱為根(root)。
(2)除k0外,k中的每個結點,對於關係n來說有且僅有乙個前驅。
(3)k中各結點,對關係n來說可以有m個後繼(m>=0)。
堆(heap)
在電腦科學中,堆是一種特殊的樹形資料結構,每個結點都有乙個值。通常我們所說的堆的資料結構,是指二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是乙個堆。
雜湊表(hash)
若結構中存在關鍵字和k相等的記錄,則必定在f(k)的儲存位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關係f為雜湊函式(hash function),按這個思想建立的表為雜湊表。
圖(graph)
圖是由結點的有窮集合v和邊的集合e組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關係。
本文**:
常用的資料結構
1.資料元素相互之間的關係稱為結構。2.四類基本結構 集合 線性結構 樹形結構 圖狀結構 1 集合結構 除了同屬於一種型別外,別無其它關係 2 線性結構 元素之間存在一對一關係常見型別有 陣列,鍊錶,佇列,棧,它們之間在操作上有所區別.例如 鍊錶可在任意位置插入或刪除元素,而佇列在隊尾插入元素,隊頭...
常用的資料結構
在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列 指標陣列 結構陣...
常用資料結構
文章參考 資料結構 c語言版 嚴蔚敏 線性表 有頭有尾,中間節點有前驅有後繼 定義 一組連續的儲存單元依次儲存線性表的資料元素。定長順序表 typedef struct sqlist psqlist 不定長順序表 typedef struct dsqlist dsqlist,pdsqlist 單鏈表...