資料結構指南

2021-10-05 18:26:58 字數 1994 閱讀 1600

程式 = 資料結構 + 演算法

資料是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。

資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。有時,乙個資料元素可由若干個資料項組成。資料項是資料的不可分割的最小單位。

資料物件是性質相同的資料元素的集合,是資料的乙個子集。

資料型別是乙個值的集合和定義在此集合上的一組操作的總稱。

原子型別。其值不可再分的資料型別。

結構型別。其值可以再分解為若干分量的資料型別。如:c語言中的結構體

抽象資料型別(adt)是抽象資料組織及與之相關的操作。

資料結構是相互之間存在一種或多種特定關係的資料元素的集合。

資料結構三要素:

邏輯結構

物理結構或儲存結構

資料結構在計算機中的表示(又稱映像)稱為資料的物理結構。

演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示乙個或多個操作。演算法特性:

鏈式儲存結構

單鏈表鍊錶的每個結點中只包含乙個指標域,故又稱線性鍊錶或單鏈表。

迴圈鍊錶雙向鍊錶結點中有兩個指標域,其一指向直接後繼,另一指向直接前趨。

實現的是一種後進先出(last-in,first-out,lifo)策略。

棧上的 insert 操作稱為壓入(push),而無元素引數的 delete 操作稱為彈出(pop)。

佇列實現的是一種先進先出(first-in,first-out,fifo)策略。

陣列是在記憶體中儲存相同資料型別的連續的記憶體空間。

樹作為一種樹狀的資料結構,其資料節點之間的關係也如大樹一樣,將有限個節點根據不同層次關係進行排列,從而形成資料與資料之間的父子關係。常見的數的表示形式更接近「倒掛的樹」,因為它將根朝上,葉朝下。

基本術語

樹的性質

樹中的結點數等於所有結點的度數加 1。

樹可以衍生出許多的結構,若將指標域設定為雙指標,那麼即可形成最常見的二叉樹,即每個結點最多有兩個子樹的樹結構。二叉樹根據結點的排列和數量還可進一度劃分為完全二叉樹、滿二叉樹、平衡二叉樹、紅黑樹等。

將二叉樹從上到下,從左到右依次編號。對於編號為 i 的結點,其雙親的編號為 i/2,左孩子為 2i,右孩子為 2i + 1。

二叉樹由3個基本單元組成:根節點、左子樹、右子樹。

遍歷二叉樹

若限定先左後右,則有 3 種情況,先序遍歷、中序遍歷、後序遍歷。

先序遍歷:根左右

中序遍歷:左根右

後序遍歷:左右根

紅黑樹具有五個特性:

每個結點要麼是紅的要麼是黑的。

根結點是黑的。

每個葉結點(葉結點即指樹尾端nil指標或null結點)都是黑的。

如果乙個結點是紅的,那麼它的兩個兒子都是黑的。

對於任意結點而言,其到葉結點樹尾端nil指標的每條路徑都包含相同數目的黑結點。

雜湊表也叫雜湊表,是一種通過鍵值對直接訪問資料的結構。

圖結構一般包括頂點和邊,頂點通常用圓圈來表示,邊就是這些圓圈之間的連線。邊還可以根據頂點之間的關係設定不同的權重,預設權重相同皆為1。此外根據邊的方向性,還可將圖分為有向圖和無向圖。

計算機上的非數值處理的物件基本上是字串資料。

複試上機指南之資料結構二

二叉樹的前 中 後序 層次遍歷 struct tree 先序遍歷 void preorder tree root coutpreorder root leftnode preorder root rightnode return 中序遍歷 void inorder tree root preorde...

資料結構與演算法學習指南

一 資料 1.教材 資料結構與演算法分析 豆瓣 經典之作,廣為人知 資料結構 豆瓣 嚴蔚敏的,就是國內大學常用的那本。嚴謹,偽 不錯。大話資料結構 豆瓣 語言比較通俗。比第一本簡單易懂。btw,作者程杰老師在知乎上也相當活躍 演算法 第4版 豆瓣 圖超多。比第一本簡單易懂。2.慕課 浙江大學的 資料...

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...