您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“數(shù)據(jù)庫鄰接表有什么特點(diǎn)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
2. 鄰接表(無向圖)的特點(diǎn):
有時(shí)候鄰接矩陣并不是一個(gè)很好的選擇:
如上圖: 邊數(shù)相對(duì)頂點(diǎn)較少,這種結(jié)構(gòu)無疑是存在對(duì)存儲(chǔ)空間的極大浪費(fèi)。
鄰接表: 數(shù)組和鏈表結(jié)合一起來存儲(chǔ)。
1.)頂點(diǎn)用一個(gè)一位數(shù)組存儲(chǔ)。
2.)每個(gè)頂點(diǎn)Vi的所有鄰接點(diǎn)構(gòu)成一個(gè)線性表,由于鄰接點(diǎn)的個(gè)數(shù)不確定,所以我們選擇單鏈表來存儲(chǔ)。
2. 鄰接表(有向圖)的特點(diǎn):
把頂點(diǎn)當(dāng)弧尾建立的鄰接表,這樣很容易就可以得到每個(gè)頂點(diǎn)的出度。
有時(shí)為了便于確定頂點(diǎn)的入度或以頂點(diǎn)為弧頭的弧,我們可以建立一個(gè)有向圖的逆鄰接表:
3. 鄰接表(網(wǎng))的特點(diǎn):
對(duì)于帶權(quán)值的網(wǎng)圖,可以在邊表結(jié)點(diǎn)定義中再增加一個(gè)數(shù)據(jù)域來存儲(chǔ)權(quán)值即可:
typedef char Vtype //頂點(diǎn)類型 typedef int Etype //權(quán)值類型 #definde MAXV 100; typedef struct edgeNode //邊表節(jié)點(diǎn) { int adjvex; //鄰接點(diǎn) 存儲(chǔ)該頂點(diǎn)對(duì)應(yīng)的下標(biāo) Etype weight;//邊 權(quán)值 struct edgeNode *next; }EdgeNode; typedef struct Vnode //頂點(diǎn)表 節(jié)點(diǎn) { Vtype data; EdgeNode* firstEdge; }VNODE; // typedef struct { VNODE adjlist[MAXV]; int numV;//當(dāng)前頂點(diǎn)數(shù) int numE;//當(dāng)前邊數(shù) }GraphAdjList; void CreateALGraph(GraphAdjList* G) { int i,j,k; EdgeNode* e= NULL; cout<<輸入頂點(diǎn)數(shù)"; cin>>G->numV; cout<<輸入邊數(shù)"; cin>>G->numE; for(i=0;i<G->numV;i++)//建立頂點(diǎn)信息 { cin >> G->adjlist[i].data; //輸入頂點(diǎn)信息 G->adjlist[i].firstEdge = NULL; //邊表節(jié)點(diǎn) 為空 } for(k=0;k<numE;k++)//建立邊信息 { cout<<"輸入邊的開始"; cin>>i; cout<<"輸入邊的結(jié)尾"; cin>>j; e = new EdgeNode; //(1,3) 這個(gè)線的插入是相互的對(duì)于兩個(gè)點(diǎn)1,3來說 分別不同的因此有兩個(gè)new e->adjvex = j; e->next = G->adjlist[i].firstEdge; //類似與棧里的 node->next = list->head; list->head = node; G->adjlist[i].firstEdge = e; e = new EdgeNode; e->adjvex = i; e->next = G->adjlist[j].firstEdge; G->adjlist[j].firstEdge = e; } }
對(duì)于無向圖來說一條邊對(duì)應(yīng)都是兩個(gè)頂點(diǎn),所以在一次循環(huán)中就對(duì)i和j分別進(jìn)行了插入 對(duì)于n個(gè)頂點(diǎn)e個(gè)邊來說 O(n+e)
“數(shù)據(jù)庫鄰接表有什么特點(diǎn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。