新しい要素15は、指定されたノードによって挿入されます

ここでの値は、第3のノードの前に挿入され

1  / * 特定の(第3ノード)は、ノード要素の前に挿入* / 
2  
。3の#include <stdio.hの>
 4の#include <STDLIB.H>
 。5  
。6  // リンクリストノード構造
7のtypedef 構造体のリンク{
 8      INT   データ;
 9      構造体リンク* 次に、
 10  }のリンク;
 11  
12は、 // リストの初期化
13がリンク* initByTailInsert(){
 14      リンクPHEAD * = NULL; // 作成ヘッドポインタ
15      リンクfirst_node = *(*リンク)はmalloc(sizeof(リンク)); // 最初のノードを作成します
16      // 最初のノードが初期化する
。17      first_node-> =データ1。;
 18である      first_node->次に= NULL;
 19      PHEAD = first_node; // 最初のノードへのヘッド・ポインタ・ポイント
 20は 
21である     // 割り当てテールインサート
22である     ためINT Iは= 2、I < 5。 ; I ++ ){
 23は          リンクnew_node = *(*リンク)はmalloc(はsizeof(リンク)); // 新しいノードを要求する
24          new_node->データ= I;
 25          new_node->次に= NULL;
 26         first_node->次に= new_node;   // 最初のノード新しいノード・アプリケーションへのポインタフィールドポイント
27          first_node = new_node;   // 第1シフトノードの後
28      }
 29  
30      のprintf(" ヘッドポインタの値である:%D \ N- "、phead->データ); // 1 
31は     戻り PHEAD;   // 最初のノードに戻りを指し示すヘッドポインタ
32  }
 33が 
34である 
35  
36  ボイド ShowLink(リンク* PHEAD){
 37      リンクTMP = PHEAD *; // ポインタTMPからヘッド、TMPは、ヘッドポインタで
 38      // 次のノードへの長いTMPポインタ出力文が実行され、NULLではありません。
39      しばらく(!TMP = NULL){
 40          のprintf(" %d個"、tmp-> データ)。
41          TMP = tmp-> 次。
42      }
 43      のprintf(" \ n " );
44  }
 45  
46リンク* getElemByNum(リンク* PHEAD、int型NUM){
 47      のint J = 1// 计数器
48      リンク* TMP = PHEAD。
49      一方(TMP = NULL && NUM>!J){
 50          TMP = tmp-> 次。
51         ++ J ;
 52である     }
 53が     IF(TMP == NULL || NUM < J){
 54は         // のprintf( "Nこの要素が\存在しない"); 
55          戻りNULL;
 56である     }
 57が     {
 58          リターンTMP;
 59      }
 60  }
 61は 
62である 。// 第3ノード番号を挿入する前に、
63は 空隙 insertElem(PHEADリンク*、INT elem1 ,, INT のElem2の){
 64      リンク* TMP = PHEAD;
 65      リンク* front_node = getElemByNum(TMP、elem1、 - 1。 )。
66      = *(*リンク)はmalloc(リンクinsert_node はsizeof (リンク));
 67      insert_node->データ= ののElem2;
 68      insert_node->次に= getElemByNum(TMP、elem1);
 69      front_node->次に= insert_node;
 70      ShowLink(TMP );
 71である 
72  }
 73である ボイドメイン(){
 74      // 初期化リスト(1,2,3,4)
75      のprintf(" 初期化リストである:\ N- " );
 76      リンク* = initByTailInsert PHEAD(); // の作成後のヘッドポインタを取得するために初期化され、ヘッドポインタ、
77      ShowLink(PHEAD);
 78  
79     INT値= 0 ;
 80      (printfの" 第3のノードの値を挿入する前に、入力します。" );
 81      scanfのを(" %のD "、&値);
 82      のprintf(" 第3のノードの前の挿入%までリストの後にDである:\ N- " 、値);
 83      insertElem(PHEAD、3。 値);
 84  
85 }

 

おすすめ

転載: www.cnblogs.com/shanlu0000/p/12459945.html
おすすめ