单链表:typedef struct { char num[20]; char name[50]; float pri; }Book; typedef struct LNode{ //线性表的单链表存储 Book book; //数据域 struct LNode *next; //指针域 }LNode,*LinkList; void Input(LinkList &L){ //前插法创建图书链表 LinkList p; L=new LNode; L->next=NULL;//初始化单链表 ifstream inFile("book.txt"); if(!inFile){ cerr<<"Cannot open this file!"<>book_head1>>book_head2>>book_head3;//读取文件中的标题 while(!inFile.eof()){//到达文件尾部前逐行依次读取所有图书数据 p=new LNode; //生成新结点 inFile>>p->book.num>>p->book.name>>p->book.pri; p->next=L->next; //插入到表头 L->next=p;h } inFile.close(); cout<<"读取完毕!"<next; while(p){ cout<book.num<<"\t"<book.name<<"\t"<book.pri<next; } cout<<"\n 信息显示完毕\n"<next; char name1[20]; cout<<"请输入要查找的书名:"; cin>>name1; while(p){ if(strcmp(name1,p->book.name)==0){ cout<book.num<<"\t"<book.name<<"\t"<book.pri<next; } } void Searchnum(LinkList &L){ int i; int j=0; LinkList p; p=L->next; //p 指向第一个结点 cout<<"请输入要查找的书籍的位置"; cin>>i; while(p&&jnext; } if(!p||j>i){ //第i 个元素不存在 cout<<"错误!"<book.num<<"\t"<book.name<<"\t"<book.pri<next; p=L->next->next; while(p){ if(p->book.pri>pmax->book.pri) pmax=p; p=p->next; } cout<book.num<<"\t"<book.name<<"\t...