簡體   English   中英

沒有邊的總頂點C

[英]total vertices without edges C

因此,我正在為考試做准備,發現了以下我不知道如何解決的問題:

圖:

        typedef struct NODE{
             int weight;
             int idEdge;
             int idDestination;
             struct NODO *next;
        }Node;

並遵循此原型:

    int totVertexWithoutEdges(Node **g, int totv)

我必須創建一個函數,該函數可以為我提供不包含邊的頂點總數,但是我不知道如何實現它,任何人都可以向我解釋我應該如何解決它,而不是僅僅尋求一些解決辦法來尋求答案。

一種方法是創建一個每個節點有一個條目的數組。 最初,將此數組中的所有元素設置為0。

然后,遍歷所有邊緣。 對於每個邊,將表示與源節點(和/或目標節點,取決於您如何解釋問題)相對應的數組元素的數組元素更改為1。這表示該節點具有連接的邊。

最后,遍歷數組並計算0項的數量,這將告訴您沒有傳入/傳出邊緣的節點總數。

希望這可以幫助!

您的totVertexWithoutEdges只需要瀏覽Node ** g,它將是指向鏈表的指針的地址。

也許類似(基於最后一個元素指向NULL的事實)

while (*g != NULL)
{
     // Check out what you want about your edge things
     g = &(*g)->next;
}

但是如果totv表示頂點數,則為

int   counter;

counter = 0;
while (counter < totv)
{
     // Check out what you want about your edge things
     g = &(*g)->next;
     counter = counter + 1;
}

鏈表是一種著名的數據結構;),祝您運動愉快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM