1. 程式人生 > >計算機數據組織方式

計算機數據組織方式

blank type 程序 存儲結構 方便 strac 前端 鏈接 組織

跟我們日常工作和生活一樣,計算機程序也組織它們的數據的時候,它們做這些事情的方式使用線性表、棧及詞典,等等。這些數據組織的方式稱為抽象數據類型(ADT)。

一個抽象數據類型(abstract data type),即ADT是描述一個數據集合以及在這個數據集合上的操作的說明。每個ADT裏都存放的是什麽數據,以及在這些數據上應該做些什麽操作。但是ADT並不指明如何存放數據或者如何實現操作。因此,對ADT的談論可以獨立於任何程序設計語言。相反,數據結構(data structure)是ADT在程序設計語言中的一種實現。

數組

在程序設計中,為了處理方便, 把具有相同類型的若幹變量按有序的形式組織起來。這些按序排列的同類數據元素的集合稱為數組。

棧(stack)

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

隊列(queue)

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

鏈表

是一種物理存儲單元上非連續、非順序的存儲結構,它既可以表示線性結構,也可以用於表示非線性結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。

是包含n(n>0)個結點的有窮集合K,且在K中定義了一個關系N,N滿足 以下條件: (1)有且僅有一個結點 K0,他對於關系N來說沒有前驅,稱K0為樹的根結點。簡稱為根(root)。  (2)除K0外,K中的每個結點,對於關系N來說有且僅有一個前驅。 (3)K中各結點,對關系N來說可以有m個後繼(m>=0)。

圖(graph)

圖是由結點的有窮集合V和邊的集合E組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關系。

在計算機科學中,堆是一種特殊的樹形數據結構,每個結點都有一個值。通常我們所說的堆的數據結構,是指二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是一個堆。

散列表(詞典)

若結構中存在關鍵字和K相等的記錄,則必定在f(K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關系f為散列函數(Hash function),按這個思想建立的表為散列表。

計算機數據組織方式