原创 【圖】圖的存儲結構
鄰接矩陣表示法 鄰接矩陣表示法的 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) 棧頂指示器:用來指示動態