7-3リンクリストの重複排除(25ポイント)

ps:もう2分おいたほうがいいです~~~私はこの偽のリンクリストについて泣いています
 

整数キーを持つリンクリストLが与えられた場合、絶対値が繰り返されるキー値ノードを削除する必要があります。つまり、各キー値Kに対して、絶対値がKに等しい最初のノードのみが予約されます。同時に、削除されたすべてのノードを別のリンクリストに保存する必要があります。たとえば、Lが21→-15→-15→-7→15の場合、重複排除されたリンクリスト21→-15→-7、および削除されたリンクリスト-15→15を出力する必要があります。

入力フォーマット:

LがNの整数最初の行アドレスの第1の入力ノードと正が与えられる(1 0 。5 、ノードの総数)。ノードのアドレスは非負の5ビット整数であり、空のアドレスNULLは-1で表されます。

次に、N行、各行は次の形式でノードを説明します。

地址 键值 下一个结点
 

どの地址ノードのアドレスであり、键值それは絶対値以下である。1 0 。4 整数、次のノードのアドレス。下一个结点

出力フォーマット:

重複除外されたリンクリストが最初に出力され、次に削除されたリンクリストが出力されます。各ノードは1行を占め、入力フォーマットに従って出力されます。

入力例:

00100 5
99999 -7 87654
23854 -15 00000
87654 15 -1
00000 -15 99999
00100 21 23854
 

出力例:

00100 21 23854
23854 -15 99999
99999 -7 -1
00000 -15 87654
87654 15 -1

改正后代码
#include <bits / stdc ++。h> 
using namespace std; 
int mapn [100005]; 
int a1 [100005]; 
int b1 [100005]; 
int a2 [100005]; 
int b2 [100005]; 
int m、m1、n、len1、len2、flag、flag1; 

struct nobe { 
int key、add; 
} x [100005]; 

int main(){ 
    cin >> m >> n; 
    int m1 = m; 
    for(int i = 0; i <n; i ++){ 
        int k; cin >> k; 
        cin >> x [k] .key >> x [k] .add; 
    } 
    while(1){ 
        if(!mapn [abs(x [m] .key)]){ 
            a1 [len1] = x [m] .key; 
            b1 [len1] = x [m] .add; 
            len1 ++; 
            b2 [len2-1] = x [m] .add; 
        } 
        その他{
            if(!flag){flag1 = m; flag ++;} 
            a2 [len2] = x [m] .key; 
            b2 [len2] = x [m] .add; 
            len2 ++; 
            b1 [len1-1] = x [m] .add; 
        } 
        mapn [abs(x [m] .key)] ++; 
        m = x [m] .add; 
        if(m ==-1)break; 
    } 
    printf( "%05d"、m1); 
    for(int i = 0; i <len1; i ++){ 
    if(i == len1-1)
        cout << '' << a1 [i] << '' << "-1" << endl; 
    else 
        printf( "%d%05d \ n%05d"、a1 [i]、b1 [i]、b1 [i]); 
    } 
    printf( "%05d"、flag1); 
    for(int i = 0; i <len2; i ++){ 
    if(i == len2-1)
        cout << ' '<< a2 [i] <<' '<< "-1" << endl; 
    そうしないと
        printf( "%d%05d \ n%05d"、a2 [i]、b2 [i]、b2 [i]); 
    } 

0を返します。
}

  

 

おすすめ

転載: www.cnblogs.com/asunayi/p/12757586.html