# include <stdio.h>
# include <stdlib.h>
# define MAX (16)
struct Link
{
int data;
struct Link *Lnext;
}Linklist =
{EOF,NULL};
/* 関数プロトタイプ */
struct Link *add(struct Link *p, int data);
struct Link *add2(struct Link Linklist, int data);
struct Link *install(int data);
struct Link *insert(struct Link *p, int data);
int print_data(struct Link *p);
int main(void)
{
char line[MAX] ; /* バッファ */
int >
int noe = 0;
struct Link *p;
while(1){/*ループ(データが入力されれば) */
printf("enter data: ");
if (*gets(line) == '') /* バッファに読み込む *//* printf("DEBUG:line[%s]n",line); */
break; /* 復改ならループから抜ける*/
add(&Linklist, data); /* 末尾にリスト要素を1つ作成 */
/* 要素のデータ成分にバッファ内のデータを書き込む */
}
printf("SHOW ALL n");
printf(" p p->Lnextn");
for(p = Linklist.Lnext; p != NULL; p=p->Lnext){
printf("Linklist:(data)%d:(address)[%d][%d]n",p->data,p,p->Lnext);
}
insert(&Linklist, 0);
printf("AFTER INSERTION n");
for(p = Linklist.Lnext; p != NULL; p=p->Lnext){
printf("Linklist:(data)%d:(address)[%d][%d]n",p->data,p,p->Lnext);
}
}
struct Link *add(struct Link *p, int data)
{
while(p->Lnext!= NULL){ /* 最後の構造体を探す */
p = p->Lnext; /* */
}
p->Lnext = install(data);
return (p->Lnext);
}
struct Link *insert(struct Link *p, int data)
{
struct Link *np = (struct Link*)malloc(sizeof(struct Link)); 66: np->
np->Lnext = p->Lnext;
p->Lnext = np;
return np;
}
/*
*struct Link *nstall(int data)
*-構造体の領域を確保し、field "data" に値を代入する。
*-構造体のアドレスを返す。
*
*/
struct Link *install(int data)
{
struct Link *np;
np = (struct Link*)malloc(sizeof(struct Link)); 83: np->
np->Lnext = NULL;
return (np);
}
댓글 0