リスト - 都市部の道路との直接の都市 - 例えば

CCF、P136、例6.5

都市の数、道路の数を入力します

各道路の両端都市を入力してください

各都市の出力は、直接都市に接続することができます。

例:

入力:

4 5

2 3

3 1

1 4

2 4

1 2

出力:

3 4 2

3 4 1

2 1

1 2

アイデア:

配列に格納されたリンクリストは、直接各都市の都市数(入力内容によって入力は、二つの都市の後列に追加される)に接続することができます。

コード:

#include <iostreamの> 
する#include < ストリング > 
の#include <cmath> 
の#include <アルゴリズム>
 使用して 名前空間STD;
 // ノード構造
構造体ノード
{ 
    int型V、
    ノード * 次に; 
}; 
// 出力リスト
ボイド out_lian(ノード* P)
{ 
    行う
    { 
        COUT << P-> V << "  " ; 
        P = P-> 次に; 
    } 
    一方(P =!NULL); 
} 
// 値(ノードを追加)
lian_append(ノード*のX、ノード* Y)
{ 
    ノード *ヘッド= X;
     // ノードリストの終わりを見つけ
    ながら(X->次!= NULL)
    { 
        X = X-> 次に; 
    } 
    // 追記 
    X->次= Y; 
} 
int型のmain()
{ 
    int型の市、道、C1、C2、
    ノード * P [ 10 ]、* Tと、
     のためのint型 I = 0 ;私は< 10 ; Iは++ 
    { 
        P [I] = NULLを; 
    } 
    CIN>>市>> 道路。
    INT J = 0 ; J <道路、J ++ 
    { 
        CIN >> C1 >> C2。
        トン = 新しいノード。
        トン - > V = C2; 
        トン - >次= NULL;
        場合(P [C 1 1 ] == NULL)
        { 
            P [C1は、 - 1 ] = Tと、
        } 
        
        { 
            lian_append(P [C1 - 1 ]、T); 
        } 
        、T = 新しいですノード; 
        トン - > V = C1; 
        トン - >次= NULL;
        場合(P [C2- 1 ] == NULL)
        { 
            P [C2は、 - 1 ] = Tと、
        } 
        
        { 
            lian_append(P [C2 - 1 ]、T); 
        } 
    } 
    のためにint型 i = 0 ; iは都市<I ++の
    { 
        out_lianを(P [I])。
        coutの << てendl; 
    } 
}

 

おすすめ

転載: www.cnblogs.com/wanjinliu/p/11410145.html