リストトラバーサル
/ *
------------------------------------
* /
の#include " stdio.hの "
の#include " STDLIB.H 「 構造体LLIST { INT NUM; CHAR 名[ 10 ]; 構造体LLIST * 次に; }; typedefは構造体LLISTノードと、ノードのtypedef * 、LLink ,; / * --------------- - ----------------リストを作成する* / 、LLink、createllist(){ 、LLink、ヘッドと、LLink、PTR、PTr1は、int型Iが; / * 最初のノードを作成します* /
ヘッド = (、LLink、)はmalloc( はsizeof (ノード));
IF ( ! ヘッド)
リターン NULL;
のprintf( " 6つの郵便のデータを入力します:N- \ " );
のprintf( " ==>番号を入力してください " );
scanf関数( " Sの% " 頭 - > NUM);
のprintf( " 数(%Dを入力してください)名前を==> " 頭 - > NUM);
scanfの( " %S " 、頭 - > 名);
ヘッド - > 次 = NULL;
PTR = 頭;
以下のための (I = 1 ; iは < 6 ; iは ++ )
{
PTR1 = (llink)はmalloc( はsizeof (ノード))。
もし ( ! PTR1)
リターン NULL;
printf( " 输入请编号==> " 、PTR1 - > NUM);
scanf関数( " %sの " 、PTR1 - > 名);
PTR - > 次 = NULL;
PTR - > 次 = PTR1。
PTR = PTR - > 次。
}
戻り ヘッド;
}
/ * --------------リンクされたリストのノードをトラバース---------------- * /
、LLink、findNode(LLink、頭、 INT NUM)
{
、LLink、PTR、
PTR = ヘッドと、
一方 (PTRは != NULL)
{
IF (PTR - > NUMが == NUM)を
返す PTRと、
PTR = PTR - > 次に、
}
戻り PTRを;
}
/ * ----検索------------------メール名-------------------によって出力 * / int型のmain(){ 、LLink、頭; 、LLink、PTR。
int型 NUM;
ヘッド = createllist();
IF ( ! ヘッド)
{
のprintf( " メモリ割り当て障害の\ N-! " );
出口( 1。 );
}
ながら、 ( 1。 )
{
のprintf( " メールを見つけるために、番号を入力してください== > " );
scanfの( " %のD " &NUM); IF (NUM != 0 ){ PTR = findNode(頭部、NUM); IF (!PTR)のprintf("
N- \見つかりません " );
他
のprintf( " 名:%S \ N- " 、PTR - > 名);
}
他の 出口(1 ); } }
の#include " stdio.hの "
の#include " STDLIB.H 「 構造体LLIST { INT NUM; CHAR 名[ 10 ]; 構造体LLIST * 次に; }; typedefは構造体LLISTノードと、ノードのtypedef * 、LLink ,; / * --------------- - ----------------リストを作成する* / 、LLink、createllist(){ 、LLink、ヘッドと、LLink、PTR、PTr1は、int型Iが; / * 最初のノードを作成します* /
ヘッド = (、LLink、)はmalloc( はsizeof (ノード));
IF ( ! ヘッド)
リターン NULL;
のprintf( " 6つの郵便のデータを入力します:N- \ " );
のprintf( " ==>番号を入力してください " );
scanf関数( " Sの% " 頭 - > NUM);
のprintf( " 数(%Dを入力してください)名前を==> " 頭 - > NUM);
scanfの( " %S " 、頭 - > 名);
ヘッド - > 次 = NULL;
PTR = 頭;
以下のための (I = 1 ; iは < 6 ; iは ++ )
{
PTR1 = (llink)はmalloc( はsizeof (ノード))。
もし ( ! PTR1)
リターン NULL;
printf( " 输入请编号==> " 、PTR1 - > NUM);
scanf関数( " %sの " 、PTR1 - > 名);
PTR - > 次 = NULL;
PTR - > 次 = PTR1。
PTR = PTR - > 次。
}
戻り ヘッド;
}
/ * --------------リンクされたリストのノードをトラバース---------------- * /
、LLink、findNode(LLink、頭、 INT NUM)
{
、LLink、PTR、
PTR = ヘッドと、
一方 (PTRは != NULL)
{
IF (PTR - > NUMが == NUM)を
返す PTRと、
PTR = PTR - > 次に、
}
戻り PTRを;
}
/ * ----検索------------------メール名-------------------によって出力 * / int型のmain(){ 、LLink、頭; 、LLink、PTR。
int型 NUM;
ヘッド = createllist();
IF ( ! ヘッド)
{
のprintf( " メモリ割り当て障害の\ N-! " );
出口( 1。 );
}
ながら、 ( 1。 )
{
のprintf( " メールを見つけるために、番号を入力してください== > " );
scanfの( " %のD " &NUM); IF (NUM != 0 ){ PTR = findNode(頭部、NUM); IF (!PTR)のprintf("
N- \見つかりません " );
他
のprintf( " 名:%S \ N- " 、PTR - > 名);
}
他の 出口(1 ); } }
ます。https://www.cnblogs.com/FCWORLD/archive/2010/11/18/1881171.htmlで再現