資料結構(data structure)是帶有結構特性的資料元素的組合。它研究的是資料的邏輯結構和資料的物理結構以及它們之間的相互關係,並對這種結構定義相適應的運算,設計出相應的演算法,並確保經過這些運算以後所得到的新結構仍保持原來的資料型別。
簡而言之,資料結構是相互之間存在一種或多種特定關係的資料元素的集合,即帶結構的資料元素的集合。結構就是指資料元素之間存在的關係,分為邏輯結構和儲存結構。
資料的邏輯結構和物理結構是資料結構的兩個密切關係的方面,同一邏輯結構可以對應不同的儲存結構。演算法的設計取決於資料的邏輯結構,而演算法的實現依賴於指定的儲存結構。
邏輯結構指反應資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之前的前後間關係,而與它們在計算機中的儲存位置無關。
邏輯結構包括:
物理結構指資料在計算機儲存空間的存放形式。
資料的物理結構是資料結構在計算機中的表示(又稱映像),它包括資料元素的機內表示和關係的機內表示。由於具體實現的方法有:順序、鏈結、索引、雜湊等多種。所以,一種資料結構可表示成一種或多種儲存結構。
資料元素的機內表示:用二進位制位(bit)的位串表示資料元素。通常稱這種位串為結點(node)。當資料元素有若個資料項組成時,位串中與各個資料項對應的字位串稱為資料域。因此,結點是資料元素的機內表示。
關係的機內表示:資料元素之間的關係的機內表示可以分為順序映像和非順序映像。常用兩種儲存結構:順序儲存結構和鏈式儲存結構。順序映像借助元素在儲存器中的相對位置表示資料元素之前的邏輯關係。非順序映像借助指示元素儲存位置的指標來表示資料元素之間的邏輯關係。
資料結構有很多種,一般來說,按照資料的邏輯結構對其簡單的分類,包括線性結構和非線性結構。
簡而言之,線性結構就是表中各個結點具有線性關係。從資料結構的語言來描述,線性結構包括:
線性結構是非空集。
線性結構有且僅有乙個開始結點和乙個終端結點。
線性結構所有結點都最多只有乙個直接前驅結點和乙個直接後繼結點。
常見的線性結構:線性表、棧、佇列、串等。
簡而言之,非線性結構就是表中各個結點之間具有多個對應關係。從資料結構的語言來描述,非線性結構應該包括:
非線性結構是非空集。
非線性結構的乙個結點可能有多個直接前驅結點和多個直接後繼結點。
常見的非線性結構:二維陣列、多維陣列、廣義表、樹、圖等。
資料結構研究的內容:如何按一定的邏輯結構,把資料組織起來,並選擇適當的儲存表示方法把邏輯結構組織好的資料儲存到計算機的儲存器裡。演算法研究的內容:更有效的處理資料,提高資料運算效率。資料的運算是定義在資料的邏輯結構上,但運算的具體實現要在儲存結構上進行。
程式設計中常用的資料結構包括:陣列(array)、棧(stack)、佇列(queue)、鍊錶(linked list)、樹(tree)、圖 (graph)、堆(heap)、雜湊表(hash)等。
程式設計中常用的運算包括:檢索、插入、刪除、更新、排序等。
資料結構和演算法概述
資料結構是對在計算機記憶體 有時在磁碟中 中的資料的一種安排。資料結構包括陣列,鍊錶,棧,二叉樹,雜湊表等。演算法是對這些結構中的資料進行各種處理。對於大多數資料結構來說,都需要知道如下操作 1.插入一條新的資料項 2.尋找某一特定資料項 3.刪除某一特定資料項 4.迭代訪問某一資料結構中的各資料項...
資料結構和演算法概述
1.什麼是資料結構,什麼是演算法 資料結構指一組資料的儲存結構。演算法就是運算元據的一組方法。2.常用的資料結構 陣列 鍊錶 棧 佇列 雜湊表 二叉樹 堆 跳表 圖 trie 樹。3.常用的演算法 遞迴 排序 二分查詢 搜尋 雜湊演算法 貪心演算法 分治演算法 回溯演算法 動態規劃 字串匹配演算法 ...
資料結構和演算法概述
2 鏈式儲存結構 下面我們用一些實際的案例體驗一些演算法。案例1 計算1到100的和。package com.sunxiaping 定義兩個整型變數 執行100次加法運算 列印結果到控制台 author 許大仙 version 1.0 since 2020 12 04 11 19 public cl...