資料結構——簡介
資料結構——簡介 1、幾個基本概念 資料:資料是指計算機接受的輸入資料,比如:整型、浮點型等數值型別以及聲音、影象、視訊等非數值型別的資料 資料元素:是組成資料有一定意義的基本單位,比如一個人的基本資訊包括姓名、性別、年齡等 資料物件:是性質相同的資料元素的集合,比如正整數資料物件N={1,2,3… […]
-->
程式前沿 幫助程式設計師解決問題,增加專業技能,提升個人能力與未來世界競爭力。
資料結構——簡介 1、幾個基本概念 資料:資料是指計算機接受的輸入資料,比如:整型、浮點型等數值型別以及聲音、影象、視訊等非數值型別的資料 資料元素:是組成資料有一定意義的基本單位,比如一個人的基本資訊包括姓名、性別、年齡等 資料物件:是性質相同的資料元素的集合,比如正整數資料物件N={1,2,3… […]
眾所周知,堆疊的一個作用就是可以進行計算機來運算。 字尾表示式->中綴表示式 字尾表示式:運算子處於兩個運算元之間,如:abc* de/- 其對應的中綴表示式為:a b*c-d/e 字尾表示式運算策略為從左向右掃描,逐個處理運算數和運算子號。 1、遇到運算數將其記住 2、遇到運算子號是將離其 […]
佇列(Queue)是具有一定操作約束的線性表。插入和刪除操作:只能在一段插入,而在另一端刪除。 資料插入:入佇列(AddQ) 資料刪除:出佇列(DeleteQ) 先來先服務,先進先出(FIFO) 佇列的順序儲存結構通常由一個一維陣列和一個記錄佇列頭元素的變數front以及一個記錄佇列尾部元素位置的變 […]
優先佇列(Priority Queue):特殊的“佇列”,取出元素的順序是按照元素的優先權(關鍵字)大小,而不是元素進入佇列的先後順序。 若採用陣列或連結串列實現優先佇列 陣列: 插入——元素總是插入尾部 刪除——查詢最大(或最小)關鍵字。從陣列中刪去需要移動元素 O(n) 連結串列: […]
堆的表示及其操作 #define MAXN 1001 #define MINH -10001 int H[MAXH],size; void Creat() { size=0; H[0]=MINH;//設定崗哨 } void Insert(int X) { int i; for(i= size;H[i […]
圖(Graph):表示“多對多”的關係。 包含:一組頂點:通常用V(Vertex)表示頂點集合 一組邊:通常用E(Edge)表示邊的集合 邊是頂點對:(v,w)∈E,其中v,w∈V 有向邊<v,w>表示 […]
void Save007(Graph G) { for(each V in G){ if(!visited[V]&&FirstJump(v)}{ answer=DFS(V); if(answer==YES) break; } } if(answer==YES) output("yes […]
用臨接矩陣表示圖 typedef struct GNode *ptrToGNode; struct GNode{ int Nv;//頂點數 int Ne;//邊數 weightType G[MaxVertexNum][MaxVertexNum]; DataType Data[MaxVertexNum […]
最短路徑問題的抽象 *在網路中,求兩個不同頂點之間的所有路徑中,邊的權值之和最小的那一條路徑。 這條路徑就是兩點之間的最短路徑(shortest path) 第一個頂點為源點(source) 最後一個頂點為終點(destination) 問題分類 單源最短路徑問題:從某固定源點出發,求其到所有其他頂 […]
是一棵樹 無迴路 |v|個頂點一定有|v|-1條邊 是生成樹(向生成樹中任加一條邊都一定構成迴路) 包含全部頂點 |v|-1條邊都在圖裡 邊的權重和最小 貪心演算法 “貪心”:每一步都要最好 “好”:權重最小的邊 需要約束:只能用圖裡有的邊,只能正海用掉|v|-1條邊,不能有迴路 prim演算法—— […]