代码使用C语言编写,使用链表完成
实验要求
图书信息表包括以下 10 项常用的基本操作:图书信息表的创建和输出、排序、修改、逆序存储、最贵图书的查找、最爱图书的查找、最佳位置图书的查找、新图书的入库、旧图书的出库、图书去重。
实验要求选用顺序表或链表实现上述 10 项操作。
代码
#include<stdio.h>
#include<stdlib.h>
//图书信息定义
typedef struct
{
char no[20]; //图书 ISBN
char name[50]; //图书名字
float price; //图书价格
}Book;
//链式存储结构的定义如下:
typedef struct LNode
{
Book data; //结点的数据域
struct LNode *next; //结点的指针域
}LNode,*LinkList; //LinkList 为指向结构体 LNode 的指针类型
//建立链表
LinkList CreatList()
{
LinkList head=(LinkList)malloc(sizeof(LNode));//建立头节点
head->next=NULL; //头节点指向为空
LinkList Head=head;
char Isbn[20]; //图书 ISBN
char Name[50]; //图书名字
float Price=1; //图书价格
scanf("%s %s %f",Isbn,Name,&Price);
//如果输入:0 0 0就结束
while( !(strcmp(Isbn,"0")==0 && strcmp(Name,"0")==0 && Price==0 ))
{
LinkList temp=(LinkList)malloc(sizeof(LNode));
strcpy(temp->data.no,Isbn);
strcpy(temp->data.name,Name);
temp->data.price=Price;
temp->next=NULL;
head->next=temp;
head=head->next;
scanf("%s %s %f",Isbn,Name,&Price);
}
return Head;
}
//图书信息的显示
void Show(LinkList head)
{
head=head->next;
while(head!=NULL)
{
printf("%s %s %.2f\n",head->data.no,head->data.name,head->data.price);
head=head->next;
}
return