First and last interpolation of linked list
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Book
{
char title[100];
char author[100];
struct Book *next;
};
void getInput(struct Book *book)
{
printf("请输入书名,作者\n");
scanf("%s %s",book->title,book->author);
}
void addBook(struct Book **library)
{
struct Book *book,*temp;
book=(struct Book*)malloc(sizeof(struct Book));
if(book==NULL)
{
printf("内存分配失败!\n");
exit(EXIT_FAILURE);
}
getInput(book);
if(*library!=NULL)
{
temp=*library;
while(temp->next!=NULL)
{
temp=temp->next;
}
temp->next=book;
book->next=NULL;
}
else
{
*library=book;
book->next=NULL;
}
}
void printLirary(struct Book *library)
{
struct Book *book;
book=(struct Book*)malloc(sizeof(struct Book));
for(book=library;book!=NULL;book=book->next)
{
printf("书名:%s\n作者:%s\n\n",book->title,book->author);
}
}
void getInput(struct Book *book);
void addBook(struct Book **library);
void printLibrary(struct Book *lbrary);
int main()
{
struct Book *library=NULL;
while(1)
{
char ch;
printf("是否需要输入书籍:Y或者N\n");
do
{
scanf("%c",&ch);
} while(ch!='Y'&&ch!='N');
if(ch=='Y')
{
addBook(&library);
}
else
{
break;
}
}
printLirary(library);
free(library);
return 0;
}