この質問は、単独リンクリストに情報を入力するキーボードを作成し、学生情報学生情報リストを見て、学生が必要です。
次のように学生の情報LLIのノードが定義されています。
構造体のリスト{typedefは
、int型のSNO
チャーSNAME [10]。
次のリスト*;
}、
あなたは、関数を作成する必要があります。
作成、学生情報リスト機能:CreateList
学生情報機能のリストを検索:検索
関数インタフェースの定義:
リスト* CreateList(); //キーボード入力、いくつかの学生番号と名前、空白文字間隔を持つ学生番号と氏名、学生番号の入力がある-1、入力端は、リターンという学生情報リスト機能を作成します学生は、ポインタのリストを率います。
リストは*検索(一覧*ヘッド、 INTなし)// クエリの学校の生徒数は、学生のリストには情報(先頭ポインタに頭)ではないノードの学生へのポインタを返します。
参考試験手順サンプル:
int型メイン(無効){
リスト*リスト= NULL、P;
int型NO;
リスト= CreateList();
しばらく(〜scanfの( "%のD"、&NO))
{
P =検索(一覧、NO );
IF(P)のprintf( "%S \ N-"、P-> SNAME);
他のprintf() "が見つかりませんでした\ N-!";
}
の戻り0;
}
/ * /ここで答えを記入してください
入力サンプル1:
20180002 WANG
20180006ヨンジュン
20180008呉タオ
20170010林
-1 XX
20180002
出力サンプル1:
出力に対応し、ここで与えられました。例えば:
王香港
入力サンプル2:
20180002 WANG
20180006ヨンジュン
20180008呉タオ
20170010林
-1 XX
20170015
出力サンプル2:
が見つかりませんでした!
List * CreateList()
{
List *p, *head, *tail;
int id; char name[10];
head = (List*)malloc(sizeof(List));
head->next = NULL;
tail = head;
scanf("%d", &id);
while (id != -1)
{
p = (List*)malloc(sizeof(List));
p->next = NULL;
p->sno = id;
scanf("%s", p->sname);
scanf("%d", &id);
tail->next = p;
tail = p;
}
scanf("%s", name);
return head;
}
List * Find(List *head, int no)
{
List *p;
p = head->next;
while (p->sno != no)
{
if (p->next == NULL)
return p->next;
p = p->next;
}
return p;
}