単一リンクリストの基本的な操作を実現

挿入ノードを示しています

S->次= P-> 次。
    P - >次=秒;
コードの表示

 

ノードを作成します

1つのtypedef 構造体lノード
 2  {
 3      ElemTypeデータ。
4      構造体の lノード* 次の;
5 } lノード、* LINKLIST。
コードの表示

 1つのリストにこの操作

1.リストを作成します。

1  LINKLIST creatList()
 2  {
 3      LINKLIST L =(LINKLIST)はmallocはsizeof (lノード))。
4      LINKLIST Ptai = L。
5      Ptai->次= NULL;
6      L->次= NULL;
7  
8      のprintf(" 入力の長さ:\ n " );
9      のscanf(" %dの"、およびL-> データ)。
10  
11      のためにint型 I = 1 ; I <= L->データiが++ 12      {
 13         LINKLIST PNEW = 新しいlノード。
14          のprintf(" 入力%dのデータの\ n " 、I)。
15          のscanf(" %dの"、&​​pnew-> データ)。
16  
17          Ptai->次= PNEW。               // 尾插法
18          Ptai = PNEW。
19          Ptai->次= NULL;
20      }
 21  
22      リターンL。
23 }
コードの表示

リストトラバース2

1つの 空隙トラバース(LINKLISTのL)
 2  {
 3      LINKLISTのP = L。
4      一方(P->次!= NULL)
 5      {
 6          のprintf(" %d個"、P->ネクスト> データ)。
7          P = P-> 次。
8      }
 9      のprintf(" の\ n " );
10 }
コードの表示

 

 3.挿入ノード

ステータスinsertList(LINKLIST L、INTローカル、ElemType&E)
{ 
    場合(<ローカル1 + ||ローカル>(L->データ1 ))
    { 
        のprintf(" 無効な入力の\ n ");  // 判断插入的未知是否有效
        返すFALSE。
    } 

    LINKLIST P = L。
    以下のためにint型 i = 1 ; iは<ローカル; iは++ 
    { 
        P = P-> 次。       
    } 

    LINKLIST S = 新しいlノード。

    S - >データ=E、
    S - > P-次に=> 次に、
    P - >次に= S; 

    L - >データ++;            // 。挿入長さプラス1つの
    リターンTRUE; 

}
コードの表示

4.ノードの削除

1ステータスdeleteList(LINKLIST L、int型のPOS)
 2  {
 3      であれば(POS < 1 || POS> L-> データ)
 4      {
 5          のprintf(" 無効な入力の\ n " );
6          リターンFALSE;
7      }
 8  
9      LINKLISTのP = L。
10      のためにint型 I = 1 ; <; I ++はPOSを私は11      {
 12          、P = P-> 次。
13      }
 14  
15     p型>次= P->ネクスト> 次;
16      L-> data-- 17  
18      リターンTRUE。
19  
20 }
コードの表示

値の単一のリスト

1  INT GETVAL(LINKLIST L、int型のPOS)
 2  {
 3。     IF(POS < 1。 L-> || POS> データ)
 4。     {
 5。          のprintf(" N- \無効INPUT ");    // 妥当見つける位置決意
。6          リターン 0 ;
 7      }
 8。 
9。      LINKLIST P = L;
 10      INT I = 1 ; Iは、<POSを私は++ 11      {
 12は          P = P-> ;次に
 13れます     }
14  
15      リターンのp->ネクストデータ>;       // 値を見つけるために戻った
16 }
コードの表示

6.単一のリストを探します

1  int型GetPosも(LINKLIST L、ElemTypeヴァル)
 2  {
 3      LINKLISTのP = L。
4      のためのint型 I = 1を iが++; I <= L->データ5      {
 6          P = P-> 次。
7          場合(P->データ== ヴァル)
 8          {
 9              リターン I。                // 返回值的位置
10          }
 11  
12          なら(I == L-> データ)
 13          {
 14              リターン 0// 見つからない場合は、0を返し
15          }
 16      }
 17 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/wwww2/p/11621589.html