データ構造(C ++)言葉遣い

単一のリストの設立

 

 


 

 

 機能を達成するために必要なこの問題は、整数のインクリメントされたシーケンスは、整数の非減少列にまとめ二つのリストによって表されます。

入力端として-1〜

 

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  
4 typedefは構造体の lノード*のリスト。
5  構造体lノード
 6  {
 7    int型データ、
8    lノード* 次の;    
9  }。
10   
11  空隙 InitList(リスト&L)
 12  {
 13      = L 新しいlノード。
14      L->次= NULL;
15  }
 16  
17  空隙 CreatList(リスト&L)
18は {
 19      一覧R&LT、S;
 20は      S = L;
 21である     int型A、
 22は     しばらく1 23は     、{
 24          CIN >> A;            // 出力が終了-1と
25          IF(A == - 1// エンド補間
26は、         BREAK 27          R&LT = 新しい新しいlノード、
 28          R->データ= A;
 29          R->次に= NULL;
 30          S->次に= R&LT;
 31は、          S =R;
32      }
 33      S->次= NULL;
34  }
 35  
36  空隙がprintlist(リスト&L)
 37  {
 38    リストP。
39    、P = L-> 次。
40    一方、(P)
 41    {
 42        COUT << P->データ<< "  " 43        、P = P-> 次。
44    }
 45  }
 46  
47  空隙 mergeList(リスト&L1、リスト&L2)
 48  {
 49      リストPA、PB、PC、LC。
50      PA = L1-> 次。
51      PB = L2-> 次。
52      LC = 新しい lノード。// 新建头结点
53      PC = LC。        // PC指向LC 
54      ながら(PA && PB)
 55      {
 56          であれば(PA->データ<= PB-> データ) 
 57          {
 58              PC->次= PA。
59              PC = PA;
60              PA = PA-> 次。
61          }
 62          
63          {
64              PC->次= PB;
 65              PC = PB;
 66              PB = PB-> 次;    
 67          }
 68      }
 69      PC-> = PA PA次:?鉛; //はPA意志または完全なトラバーサルに無い文字列PB PC 
70      フリー(LL);   // のL1、L2の解放
71は、     フリーの(L2);   // もし出力する場合はNULL LL-> NULL 
72      がprintlist(LC) 
 73である }
 74  
75  のint main()の
 76  {
 77      リストA 、B;
 78      InitList(A);
 79     CreatList(A)。
80      InitList(B)。
81      CreatList(B)。
82      mergeList(B)
83      リターン 0 84      
85 }
単一のリストをマージ

 

業績

 

 概要

1。各リストは、ヘッダノード、ヘッドノード無意味なデータ、次のノードを指すのみ有効なポインタを有します。
2の.List L = 新しい新しい lノードリストを表し、Lは、ヘッドノードを指すポインタであります
3新しいポインタP = L作成することにより、操作欠失を通してリストを見つけるためにリストの典型的操作(リストの先頭ポインタを表すが、その値を変更することはできません)。

 


 

おすすめ

転載: www.cnblogs.com/invokerrr/p/11503098.html