[英]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.