溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表

發(fā)布時間:2021-12-08 13:57:27 來源:億速云 閱讀:154 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表”,在日常操作中,相信很多人在數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1.引言:

   如果我們在應(yīng)用中關(guān)注的是頂點 ,那么鄰接表是很好的選擇 ,可是如果是重點關(guān)注邊 那么 鄰接表就麻煩了

數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表

若要刪除左邊的(V0,V2)這條邊,需要對圖下表的陰影兩個結(jié)點進行刪除操作。


2.鄰接多重表的存儲結(jié)構(gòu):

數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表

iVex和jVex:是與某條邊依附的兩個頂點在頂點表中的下標。

iLink:指向依附頂點iVex的下一條邊。

jLink:指向依附頂點jVex的下一條邊。


3.鄰接多重表示意圖繪制:

數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表

鄰接多重表  
  
typedef char Vtype //頂點類型    
typedef int Etype //權(quán)值類型    
#definde MAXV 100;    
typedef struct edgeNode // 邊  表示邊的個數(shù)    
{   
    int ivex; //一條邊的一端   
    int jvex; //一條邊的另一端   
    struct edgeNode *ilink; //依賴于頂點ivex的下一條邊   
    struct edgeNode *jlink;//依賴于頂點jvex的下一條邊  
    type weight;//邊 權(quán)值  
}EdgeNode;    
    
typedef struct Vnode //頂點表 節(jié)點    
{    
    Vtype data;    
    EdgeNode* firstEdge; //對應(yīng)的一個邊  
}VNODE; //    
    
typedef struct    
{    
    VNODE adjlist[MAXV];    
    int numV;//當前頂點數(shù)    
    int numE;//當前邊數(shù)    
}GraphAdjList;      
    
void CreateALGraph(GraphAdjList* G)    
{    
    int i,j,k;    
    EdgeNode* e= NULL;    
    cout<<輸入頂點數(shù)";    
    cin>>G->numV;    
    cout<<輸入邊數(shù)";    
    cin>>G->numE;    
    for(i=0;i<G->numV;i++)//建立頂點信息    
    {    
        cin >> G->adjlist[i].data; //輸入頂點信息    
        G->adjlist[i].firstEdge = NULL; //邊表節(jié)點 為空  
    }  
    for(k=0;k<G->numE;k++)//建立邊信息    
    {    
        cout<<"輸入邊的開始";      
        cin>>i;      
        cout<<"輸入邊的結(jié)尾";      
        cin>>j;    
          //注意每次插入新節(jié)點都是在鏈表的表頭進行   有點繞
        e = new EdgeNode; //(1,3) 這個線的插入是相互的對于兩個點1,3來說 分別不同的因此有兩個new    
        e->ivex = i;    
        e->ilink = G->adjlist[i].firstEdge;//以前是e->next = j...的。現(xiàn)在是當前的
        G->adjlist[i].firstEdge = e; 
		
        e->jvex = j;
        e->jlink = G->adjlist[j].firstEdge;  
        G->adjlist[j].firstEdge = e;  
    }     
}

到此,關(guān)于“數(shù)據(jù)庫怎么實現(xiàn)鄰接多重表”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI