1.开头代码
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1000
#define ERROR 0
#define OK 1
typedef int Status;
typedef struct{
char bookname[10];
int ISBN;
char name[10];
}Book;
typedef struct{
Book *elem;
int length;
}Sqlist;
2.线性表的初始化
Status InitList(Sqlist &L){//初始化空的线性表
//L.elem=new Book[MAXSIZE];
L.elem=(Book *)malloc(MAXSIZE*sizeof(Book));
if(L.elem==NULL) return ERROR;
L.length=0;
return OK;
}
3.将图书各项数据写入线性表
void Create_List(Sqlist &L){//将图书数据写入线性表中
int x;
printf("请输入要写入的图书数目:");
scanf("%d",&x);
for(int i=0;i<x;i++){
scanf("%d",&L.elem[i].ISBN);
getchar();//吸收换行符
gets(L.elem[i].bookname);
gets(L.elem[i].name);
L.length++;
}
}
4.遍历线性表并输出各项图书的数据
TraverseList(Sqlist L){//遍历线性表中的每一个元素并输出
for(int i=0;i<L.length;i++){
printf("%d",L.elem[i].ISBN);
printf("\n");
puts(L.elem[i].bookname);
puts(L.elem[i].name);
}
}
5.输出目标图书数据
Status GetElem(Sqlist L,int i){
printf("%d",L.elem[i-1].ISBN);
printf("\n");
puts(L.elem[i-1].bookname);
puts(L.elem[i-1].name);
}
6.主函数
int main(){
Sqlist L;
if(InitList(L)==0) printf("内存不足!");
//先判断是否成功获取内存
else{
Create_List(L);
TraverseList(L);
}
return 0;
}
样例输入:
2 1001 余华 活着 1002 平凡的世界 路遥
运行结果: