#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct list{
char name[20];
char tel[13];
struct list *next;
};
struct list *genlist(char *name,char *tel,struct list *head);/*リストの作成*/
void displist(struct list *p);/*リストの表示*/
struct list *del(struct list *head);/*データの削除*/
main(void){
struct list *head;
char name[20],tel[13],mode[5];
head=NULL;
printf("処理入力:");
gets(mode);
while(strcmp(mode,"end")!=0){
if(strcmp(mode,"gen")==0){
printf("name入力:");
gets(name);
printf("tel入力:");
gets(tel);
head=genlist(name,tel,head);
}
else if(strcmp(mode,"del")==0){
del(head);
}
printf("処理入力:");
gets(mode);
}
displist(head);
}
/*リストの作成*/
struct list *genlist(char *name,char *tel,struct list *head)
{
struct list *sp;
sp=(struct list *)malloc(sizeof(struct list));
strcpy(sp->name,name);
strcpy(sp->tel,tel);
sp->next=head;
head=sp;
return head;
}
/*リストの表示*/
void displist(struct list *p)
{
while(p!=NULL){
printf("%s\t:%s\n",p->name,p->tel);
p=p->next;
}
}
/*データの削除*/
struct list *del(struct list *head)
{
struct list *saku;
char tan[20];
printf("探索データ入力:");
gets(tan);
saku=head;
while(head!=NULL){
if(strcmp(head->name,tan)==0){
printf("探索が成功!\n");
break;
}
saku=head;
head=head->next;
}
if(head==NULL){
saku->next=NULL;
}
else if(saku==head){
head=head->next;
saku=head;
}
else{
saku->next=head->next;
}
return saku;
}