鄰接表鏈式結構的實現和順序結構的實現

2022-09-02 05:21:10 字數 955 閱讀 6767

鏈式實現

#include#include using namespace std;

#define maxvex 100 /* 最大頂點數,應由使用者定義 */

typedef char vertextype; /* 頂點型別應由使用者定義 */

typedef int edgetype; /* 邊上的權值型別應由使用者定義 */

typedef struct edgenode/* 邊表結點 */

edgenode;

typedef struct vextexnode/* 頂點表結點 */

vextexnode, adjlist[maxvex];

typedef struct

graphadjlist;

void createalgraph(graphadjlist *gp)

for (k = 0; k < gp->numedges; k++)/* 建立邊表 */

}int main(void)

注意一般鏈式結構都是插入法,比如序號0的點領節點的序號有兩個1和2,插入時,開始建立頂點陣列的時候,firstedge邊表頭指標都置為null,讀入0,1的時候,新開乙個pe結構體,pe的adj鄰接序號是j=1,pe的下乙個領節點是0的邊頭指標為null,然後插入adjlist[i].firstedge = pe,將當前頂點序號0的指標指向pe,插入0,2的時候,2的firstedge是1,插入adjlist[i].firstedge = pe,0的指標又指向了新插入的指標2的域。。。。。

因為無向圖,下面操作反向一遍。

順序實現:

順序結構用陣列實現,是acm競賽常用的,

鏈式儲存結構和順序儲存結構的區別

演算法設計的要求 順序儲存結構和鏈式儲存結構的區別 鍊錶儲存結構的記憶體位址不一定是連續的,但順序儲存結構的記憶體位址一定是連續的 鏈式儲存適用於在較頻繁地插入 刪除 更新元素時,而順序儲存結構適用於頻繁查詢時使用。順序儲存結構和鏈式儲存結構的優缺點 例如 當你在字典中查詢乙個字母j的時候,你可以選...

線性表 鏈式儲存結構的實現

嚴版資料結構第28頁定義的單鏈表儲存結構 typedef struct lnode lnode,linkedlist 實現書中演算法2.8 2.11 include include include define elemtype int define status int define error ...

線性表鏈式儲存結構及實現

一 目的 掌握線性表的臉是儲存結構及運算 熟悉迴圈鍊錶及雙鏈表線性表的基本運算 二 內容 編寫乙個程式cdlinklist.cpp,實現迴圈雙鏈表的各種基本運算和整體建表演算法 假設迴圈雙鏈表的元素型別elemtype為char 並在此基礎上設計乙個主程式,完成如下功能 1 初始化迴圈雙鏈表h 2 ...