1. 程式人生 > 其它 >《資料結構:第一天》

《資料結構:第一天》

資料結構(data structure)是計算機中儲存、組織資料的方式。
資料結構是具有一定邏輯關係,在計算機中應用某種儲存結構,並且封裝了相應的操作的資料元素集合。它包含三方面的內容邏輯關係,儲存關係以及操作。
不同種類的資料適用於不同種類的應用,而部分甚至專門用於特定的作業任務。例如,計算機網路依賴於路由表的運作,B樹高度適用於資料庫的封裝。

常見的資料結構
1.棧(stack)棧是一種特殊的線性表,他只能在一個表的一個固定端進行資料結點的插入和刪除操作。
2.佇列(Queue)佇列和棧類似,也是一種特殊的線性表。和棧不同的是,佇列只允許在表的一端進行插入操作而在另一端進行刪除操作
3.陣列(Array)

:陣列是一種聚合資料型別,它是將具有相同型別的若干變數有序的組織在一起的集合。
4.連結串列(Linked List):連結串列是一種資料元素按照鏈式儲存結構進行儲存的資料結構,這種結構具有在物理上存在非連續性的特點。
5.樹(tree)樹是典型的非線性結構,它是包括,2個結點的有窮集合K。
6.圖(Graph)圖是另一種非線性資料結構。在圖結構中,資料結點一般稱為頂點,而邊是頂點的有序偶對。
7.堆(Heap)堆是一種特殊的樹形資料結構,一般討論的堆都是二叉堆。
8.散列表(Hash table):散列表源自於雜湊函式(Hash function),其思想是如果結構中存在關鍵字和T相等的記錄,那麼必定在F(T)的儲存位置可以找到該記錄,這樣就可以不用直接進行比較操作而直接``取得所查記錄。
(解決問題方法的效率,跟資料的組織方式有關)
9.、記憶體四區

1.棧區:對於一個程式而言,棧區是一塊連續的記憶體區域。該區域由編譯器自動分配與釋放,一般用來存放函式的引數、區域性變數等。
2.堆區:對於一個程式來說,堆可以是不連續的記憶體區域,此區域可以由開發者自行申請,自由靈活,但缺點是還需要由開發者自行釋放,若程式結束後該段空間還未被釋放則由系統自主收回

3.資料區:根據其功能,資料區又可分為靜態全域性和常量區兩個域。

●全域性區:用於儲存全域性變數和靜態變數的區域,初始化為非0的全域性變數和靜態變數在一塊區域,該區域被稱為data段;未初始化或者初始化為0的全域性變數和靜態變數在相鄰一塊區域,該區域被稱為bss段。該區域在程式結束後由作業系統釋放。

●常量區用於儲存字串常量與其他常量,該區域在程式結束後由系統釋放。

4.程式碼區:程式碼區用於存放函式體的二進位制程式碼。程式中每定義一個函式,程式碼區都會新增該函式的二進位制程式碼,用於描述如何執行函式當程式呼叫函式時會在程式碼區找該函式的二進位制的程式碼並執行。

本文來自部落格園,作者:Colin_Cora,轉載請註明原文連結:https://www.cnblogs.com/Colincora/p/15430437.html