俗話說得好,線性表(尤其是鏈表)是一切數據結構和算法的基礎,很多復雜甚至是高級的數據結構和算法,細節處,除去數學和計算機程序基礎的知識,大量的都在應用線性表。 一、棧 其實本質還是線性表:限定僅在表尾進行插入或刪除操作。 俗稱:后進先出 (LIFO=last in first out結構 ...
圖 graph 是一種比樹結構還要復雜的數據結構,它的術語,存儲方式,遍歷方式,用途都比較廣,所以如果想要一次性完成所有的代碼,那代碼會非常長。所以,我將分兩次來完成圖的代碼。這一次,我會完成圖的五種存儲結構的創建 鄰接矩陣存儲,鄰接表存儲,十字鏈表存儲,鄰接多重表存儲,邊集數組存儲 ,兩種遍歷方式 深度優先遍歷,廣度優先遍歷 。與樹結構一樣,圖結構的遍歷也需要借助隊列來協助實現。 ...
2019-02-11 15:56 0 1178 推薦指數:
俗話說得好,線性表(尤其是鏈表)是一切數據結構和算法的基礎,很多復雜甚至是高級的數據結構和算法,細節處,除去數學和計算機程序基礎的知識,大量的都在應用線性表。 一、棧 其實本質還是線性表:限定僅在表尾進行插入或刪除操作。 俗稱:后進先出 (LIFO=last in first out結構 ...
一、隊列(queue) 隊列和棧一樣,在實際程序的算法設計和計算機一些其他分支里,都有很多重要的應用,比如計算機操作系統對進程 or 作業的優先級調度算法,對離散事件的模擬算法,還有計算機主機和外部設備運行速度不匹配的問題解決等,很多很多。其實隊列的本質還是線性表!只不過是一種特殊的或者說是受限 ...
// 圖的數組(鄰接矩陣)存儲表示 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NAME 3 // 頂點字符串的最大長度+1 #define ...
//圖的數組(鄰接矩陣)存儲表示 #include <stdio.h> #include <stdlib.h> #define MAX_VEX_NUM 50 typedef char VertexType; typedef enum { DG, UDG ...
運行截圖: ...
運行截圖: ...
順序表(順序存儲結構)及初始化過程詳解 順序表,全名順序存儲結構,是線性表的一種。通過《線性表》一節的學習我們知道,線性表用於存儲邏輯關系為“一對一”的數據,順序表自然也不例外。 不僅如此,順序表對數據的物理存儲結構也有要求。 順序表存儲數據時,會提前申請一整塊足夠大小的物理空間 ...
鏈表(鏈式存儲結構)及創建 鏈表,別名鏈式存儲結構或單鏈表,用於存儲邏輯關系為 “一對一” 的數據。與順序表不同,鏈表不限制數據的物理存儲狀態,換句話說,使用鏈表存儲的數據元素,其物理存儲位置是隨機的。 例如,使用鏈表存儲 {1,2,3},數據的物理存儲狀態如下圖所示 ...