単独リンクリストの挿入、削除データ

 

  1  // リストの順序に従って、インサート要素
  2の#include <stdio.hの>
   3の#include <STDLIB.H>
   4の#include < 文字列 .H>
   。5  
  。6は、 ストラクトノード
   7  {
   8      int型の値、
   9      の構造体ノード* 次に;
 10  };
 11  
12は、 空隙 insertNode(構造体ノード**ヘッド、int型の値)
 13である {
 14      構造体ノード* ;前
 15      構造体ノード* 現在、
 16     構造体のノード* newnode。
17  
18      電流= * ヘッド。
19      前= NULL;
20      
21      
22      ながら(電流= NULL &&電流- >値<!値)
 23      {
 24          INT =電流- > B 値。
25          電流=前;        // 前记录現在上一个节点的位置
26          電流=電流- > 次。
27      }
 28      newnode =(構造体ノード*)はmallocはsizeof構造体ノード)); // メモリ割り当て
29を     IF(newNode == NULL)
 30      {
 31である          のprintf(" メモリの割り当てに失敗!" );
 32          終了(1 );
 33れる     }
 34である      newnode->値= ;値
 35      newnode->次に= 現在、
 36      IF(前== NULL)
 37      {
 38である          * =ヘッドnewNode;
 39      }
 40      
41である     {
 42れます         previous->次= newnode。
43      }
 44      
45  }
 46  
47  空隙 printNode(構造体ノード* ヘッド)
 48  {
 49      構造体ノード* 現在、
50      電流= ヘッド。
51      一方(現在!= NULL)
 52      {
 53          のprintf(" %d個"、電流- > 値)。
54          電流=電流- > 次。
55      }
 56      のprintf("\ n " );
 57  }
 58  
59  空隙 deleteNode(構造体ノード**ヘッド、int型の値)
 60  {
 61      構造体ノード* 以前、
 62      構造体ノード* 現在、
 63  
64      電流= * ヘッド;
 65      前= NULL;
 66  
67      ながら(電流= NULL &&電流- >値=!値)
 68      {
 69          =前電流;
 70          電流=電流- >次、
 71である     }
 72      IF(現在== NULL)が
 73である     {
 74          のprintf(" ノードが\ N-一致しませんでした" 。)
 75          リターン;
 76      }
 77      他の
78      {
 79          IF(前== NULL)
 80          {
 81              * =電流- 、ヘッド> 次に;
 82          }
 83          他の
84          {
 85              previous-> =>は電流の横次に、
 86         }
 87          フリー(現在の);
 88      }
 89  }
 90  INT (メイン)
 91である {
 92      構造体ノードヘッド* = NULL;
 93      int型のINPUT;
 94      のprintf(" N- \ ...テスト挿入整数を起動" );
 95      ながら、1。96      {
 97          のprintf(" \整数(-1終わりを示すとn型入力):" );
 98          scanfの(" %のD "、および入力);
 99         printf(" \ N- " );
 100          IF(INPUT == - 1 101          {
 102              BREAK ;
 103          }
 104          insertNode(&ヘッド、INPUT);
 105          printNode(ヘッド);
 106      }
 107  
108      のprintf(" スタートテスト整数を削除... N- \ " );
 109      ながら1 110      {
 111          のprintf(" \整数(-1終わりを示すとn型入力):" );
 112         scanf関数(" %のD "、および入力)。
113          のprintf(" \ nを" );
114          であれば(入力== - 1 115          {
 116              ブレーク117          }
 118          deleteNode(&ヘッド、入力)。
119          printNode(ヘッド)
120      }
 121  
122      リターン 0 123 }

:より転載KHQウインドリバー

 

おすすめ

転載: www.cnblogs.com/hsy1941/p/11505172.html