2014-04-20 31 views
-1

Iam新增了C++我必須編寫一個代表圖的節點,其中節點具有多條邊作爲輸入,單邊作爲其輸出。我也應該標記它們。感覺使用鏈表會對我有所幫助,但我對這樣一種想法感到震驚:在一個鏈表中,我只有一個給定節點的邊,另一個邊到達下一個節點。是否有任何可能的方式來表示從不同的節點到單個節點。C++中圖形的單個節點的多條邊

+0

這個問題很簡短,「不具體」......你有任何代碼! – DOOM

+0

ohh .....我沒有做任何編碼,我只是想有一個想法,我可以如何解決給定的問題。 – sai

回答

0

所以一個節點應該是這個樣子:

struct Node 
{ 
    Node(std::string label_) : label(label_) {} 
    std::string label; 
    std::vector<Node*> incoming; 
    Node* outgoing = nullptr; 
} 

然後,它只是一個佈線在一起的事情。請注意,這有點像鏈接的字符串列表,只不過「前一個」指針(incoming)是多個而不是單數。

從這裏,請注意,您實際上構建的是一棵樹(假設一個節點具有空值outgoing指針)。這可以幫助您找到可以使用的現有數據結構實現,而不是構建自己的數據結構。

+0

非常感謝.....我忘記提到在節點的輸入邊的數量中,某些邊對於給定的圖是相同的,我將如何表示圖?我的任務是表示一個圖形,它有許多輸入邊和一個輸出邊,可能是輸入到另一個節點的邊,併爲邊賦予一個權重,我猜想可以通過矢量的幫助輕鬆地將權重分配給給定的邊。我只是想要有一個基本的想法來開始編程,因此我簡單地問了一下。 – sai