原创 【圖】圖的存儲結構

鄰接矩陣表示法 鄰接矩陣表示法的 C 語言描述 #define MAX_VERTEX_NUM 20 /*最多頂點個數*/ #define INFINITY 32768 /*表示極大值,即∞*/ /* 圖的種類:DG 表

原创 【圖】圖的基本概念

圖的定義 圖的基本術語

原创 【隊列】隊列的應用舉例

1.打印楊輝三角 注意:所打印的楊輝三角形的最大行數一定要小於循環隊列的 MAXSIZE 值。當然,本例用鏈隊列也完全可以實現。 【算法描述】 void YangHuiTriangle() { SeqQueue

原创 【隊列】隊列的順序存儲(循環隊列)

順序隊列的假溢出現象 循環隊列的定義 爲了解決假溢出現象並使得隊列空間得到充分利用,一個較巧妙的辦法是將順序隊列的數組看成一個環狀的空間,即規定最後一個單元的後繼爲第一個單元,我們形象地稱之爲循環隊列。 假設隊列數組爲 Q

原创 【隊列】隊列的鏈式存儲

隊列的定義 隊列是另一種限定性的線性表,它只允許在表的一端插入元素,而 在另一端刪除元素,所以隊列具有先進先出 (Fist In Fist Out,縮寫爲 FIFO)的特性。 在隊列中,允許插入的一端叫做隊尾(rear)。 允許

原创 時鐘模擬顯示程序

#include <stdio.h> typedef struct clock { int hour; int minute; int second; } CLOCK; /* 函數功能:時、分、秒時間的更新 */ vo

原创 【樹】二叉樹遍歷算法基於棧的遞歸消除

二叉樹的遍歷問題遞歸的問題無法直接轉換成循環,所以需要採用工作棧消除遞歸。工作棧提供一種控制結構,當遞歸算法進層時需要將信息保留;當遞歸算法出層時需要從棧區退出上層信息。 遞歸進層的三件事 保存本層參數,返回地址 .傳遞參數

原创 【樹】二叉樹的遍歷

二叉樹遍歷的定義 二叉樹的遍歷:按一定規律對二叉樹中的每個結點進行訪問且僅訪問一次。其中的訪問可指計算二叉樹中結點的數據信息,打印該結點的信息,也包括對結點進行任何其他操作。 爲什麼需要遍歷二叉樹? 二叉樹是非線性數據結構,通

原创 【棧】棧的應用與遞歸

括號表達式 【題目描述】 假設表達式中包含三種括號:圓括號、方括號和花括號,它們可互相嵌套,如 ( [ { } ] ( [ ] ) )或( { ( [ ] [ ( ) ] ) } )等均爲正確的格式,而 { [ ] } ) }或

原创 【串】串的基本概念

1.串的基本概念 字符串(String):是由零個或多個字符組成的有限序列,記爲:S = ′a1 a2 … an′( n ≥ 0 ) ai∈V字符集合,每個 ai( 1 ≤ i≤ n)可以是字母、數字或其他字符。 串也是一種特定

原创 【串】串的鏈式存儲結構與應用/例題

塊鏈串 如果一個結點大小爲 4 ,鏈域大小爲 2 ,根據**存儲密度=串值佔用的存儲位/實際爲串分配存儲位,故該字符串的存儲密度爲 2 /3 。**顯然,串的存儲密度越小,運算處理就越方便,但存儲佔用的量較大。應根據具體情況來確

原创 【串】串的順序存儲結構

定長順序串 1.定義:定長順序串是將串設計成一種靜態結構類型,串的存儲分配是在編譯時完成的。與前面所講的線性表的順序存儲結構類似,可用一組地址連續的存儲單元存儲串的字符序列。 定長順序串存儲結構 #include <stdio.h

原创 【棧】順序棧及其基本操作和應用[兩棧共享]

棧的順序實現 1.定義 利用一組地址連續的存儲單元依次存放自棧底到棧頂的數據元素 設一個位置指示器 top(棧頂指針)來動態地指示棧頂元素在順序棧中的位置。 通常以 top=-1 表示空棧。(=0的時候是棧中第一個元素)

原创 【棧】鏈棧及其基本操作

棧的鏈式實現 1.定義:鏈棧即採用鏈表作爲存儲結構實現的棧。爲便於操作,這裏採用帶頭結點的單鏈表實 現棧。 top 爲棧頂指針,始終指向當前棧頂元素前面的頭結點。 若 top->next=NULL,則代表棧空。 採用鏈棧

原创 【棧】棧的定義

棧的定義 棧作爲一種限定性線性表,是將線性表的插入和刪除運算限制爲僅在表的一端進行。 棧頂:通常將表中允許進行插入、刪除操作的一端稱爲棧頂 (Top) 棧底:同時表的另一端被稱爲棧底 (Bottom) 棧頂指示器:用來指示動態