欢迎登录北京林业大学OJ系统
http://www.bjfuacm.com

219基于链式存储结构的图书信息表的最爱图书的查找

描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息。
输入
总计n+m+2行。首先输入n+1行,其中,第一行是图书数目n,后n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号和书名为字符串类型,价格为浮点数类型。然后输入m+1行,其中,第一行是一个整数m,代表查找m次,后m行是每次待查找的最爱图书名字。
输出
若查找成功: 总计输出m*(k+1)行,对于每一次查找,第一行是最爱图书数目(同一书名的图书可能有多本),后k行是最爱图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,其中价格输出保留两位小数。 若查找失败: 只输出以下提示:抱歉,没有你的最爱!
输入样例 1
8
9787302257646 Data-Structure 35.00
9787302164340 Operating-System 50.00
9787302219972 Software-Engineer 32.00
9787302203513 Database-Principles 36.00
9787810827430 Discrete-Mathematics 36.00
9787302257800 Data-Structure 62.00
9787811234923 Compiler-Principles 62.00
9787822234110 The-C-Programming-Language 38.00
2
Java-Programming-Language
Data-Structure
输出样例 1
Sorry,there is no your favourite!
2
9787302257646 Data-Structure 35.00
9787302257800 Data-Structure 62.00

#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 1000
typedef struct
{string no;                         //编号string name;                        //书名float price;                        //价格
}Book;
typedef struct LNode
{Book data;                         //数据域struct LNode *next;                    //指针域
}LNode,*LinkList;
int InitList_L(LinkList &L)             //注意引用&符号:形参变化,改变实参
{L=new LNode;L->next=NULL;return OK;
}
int Input_L(LinkList &L)            //注意引用&符号:形参变化,改变实参
{    LinkList p=L;                     //尾插法:p是链表的尾指针int n;cin>>n;                    while(n--)                  //循环输入n本书的数据{LinkList q=new LNode;         //定义新指针q并分配地址    cin>>q->data.no>>q->data.name>>q->data.price;//数据q->next=NULL;                  //处理新结点s的指针p->next=q;                       //将新指针q插在尾指针p的后面p=q;                           //更新指针p,指向尾结点}return OK;
}
int Favorite_book_L(LinkList &L1)       //注意引用&符号:形参变化,改变实参
{int n;cin>>n;                                //查询n本最爱图书LinkList L2=new LNode;               //创建链表L2,存储待查找的最爱图书LinkList p,q=L2;                 //q指向链表L2的头结点for(int i=0;i<n;i++)             //尾插法:存储n本最爱图书的书名{LinkList s=new LNode;         //定义新结点s并分配地址cin>>s->data.name;                //输入书名s->next=NULL;                 //处理新结点s的地址域q->next=s;                      //将新结点s插在尾结点q的后面q=s;                           //更新尾指针q,指向尾结点}q=L2->next;                         //q指向链表L2的首元结点while(q)                            //当结点q存在时,依次与L链表中的书名比较{int count=0;                 //最爱图书可能多本重名int flag=0;                     //假定该书不存在p=L1->next;                     //p指向链表L1的首元结点while(p)                    //当结点p存在时,进行比较{if(q->data.name==p->data.name)//书名相同{    flag=1;                 //该书存在count++;                //数目+1}p=p->next;                  //与L中的下一本书进行比较}if(flag==0)                        //与L中的书比较一轮后,不存在cout<<"Sorry,there is no your favourite!"<<endl;    else                            //与L中的书比较一轮后,存在{cout<<count<<endl;           //输出该书的总数p=L1->next;                    //p指向链表L的首元结点while(p)                   //当结点p存在,进行比较{if(q->data.name==p->data.name)//书名相同,输出相关信息cout<<p->data.no<<" "<<p->data.name<<" "<<fixed<<setprecision(2)<<p->data.price<<endl;     p=p->next;               //与L中的下一本书进行比较}}q=q->next;                      //继续查询下一本最爱的图书}return OK;
}
int main()
{LinkList L;                         //定义LinkList类型的指针LInitList_L(L);                       //创建:给指针L分配地址,初始化Input_L(L);                         //输入数据Favorite_book_L(L);                   //求最高价书,并输出相关信息return 0;
}

BJFU_数据结构习题_219基于链式存储结构的图书信息表的最爱图书的查找相关推荐

  1. BJFU_数据结构习题_218基于链式存储结构的图书信息表的最贵图书的查找

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 218基于链式存储结构的图书信息表的最贵图书的查找 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据 ...

  2. BJFU_数据结构习题_222基于链式存储结构的图书信息表的旧图书的出库

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 222基于链式存储结构的图书信息表的旧图书的出库 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据来 ...

  3. Python 数据结构 之 串 的链式存储结构

    本文所采用的数据结构模板为 <数据结构教程>C语言版,李春葆.尹为民等著. 改篇所涉及到的是 串 的链式存储结构. 用Python仿照C语言来实现. 文章转载请注明:  Python 数据 ...

  4. (数据结构)二叉树的链式存储结构

    二叉树的顺序存储的缺点 因为并不是每个二叉树都是完全二叉树,普通二叉树使用顺序表存储或多或少会存在空间浪费的现象 图 1 普通二叉树的转化 如上图 1,普通二叉树里只有二个元素,最好的存储方式当然是开 ...

  5. 数据结构与算法4——链式存储结构

    前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被 ...

  6. 链表list(链式存储结构实现)_5 线性表的链式存储结构

    系列文章参考资料为<大话数据结构>,源码为个人私有,未经允许不得转载 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,可以使连续的,也可以不连续,也就意味这些元素可以 ...

  7. 图的链式存储结构解析(邻接表、逆邻接表、十字链表、邻接多重表)

    图的矩阵表示法比较消耗空间,需要花费$ n 2 n^2 n2$个单元存储边(弧).在边数较少的情况下比较浪费.我们这里来讨论图的链式存储结构. 图的链式结构主要有四类:邻接表.逆邻接表.十字链表.邻接 ...

  8. 基于顺序存储结构的图书信息表的最爱图书的查找(C++)

    描述 定义一个包含图书信息(书号.书名.价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息. 输入 总计n+m+2行.首先输入n ...

  9. 基于链式存储结构图书信息表各项操作

    ​#include<iostream> #include<iomanip> #include<string> using namespace std; #defin ...

最新文章

  1. 太慢不能忍!CPU又拿硬盘和网卡开刀了!
  2. 如何安装fedora13的显卡驱动
  3. 牛客多校3 - Two Matchings(dp)
  4. sh: 0: getcwd() failed: No such file or directory解决
  5. 机器学习经典算法之PCA主成分分析
  6. Python编程基础04:输入与输出
  7. 在java中excel格式变为zip什么原因_Excel工作表中最常见的8类问题,你一定遇到过,附解决方法!...
  8. P4177 [CEOI2008]order
  9. Android 4.0.4模拟器安装完全教程(图文)
  10. 前端项目构建工具---Grunt
  11. 【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)
  12. 三边测距定位算法详解
  13. 易辅客栈网页游戏脚本实战(绝世仙王)
  14. 查看浏览器保存的密码
  15. 层次化网络设计(三层网络结构)
  16. 【SEED Labs 2.0】ICMP Redirect Attack Lab
  17. 华为系统wifi服务器失败是怎么回事儿,wifi 用云服务器异常
  18. 350套前端网站模板
  19. 数学建模-数学规划模型
  20. STM32CUBEIDE 安装报错 error launching installer 解决办法

热门文章

  1. 射击场设计方案平面图和效果图分享
  2. App和Web抓包工具
  3. 2021-2022毕业一年工作总结--华为外包VRP自动化测试
  4. Java英文单词Java基础常见英语词汇
  5. 人工智能 ChatGPT的使用初体验
  6. 支付系统接口性能压力测试TPS优化之路
  7. c++入门之内联函数,auto关键字
  8. 项目经理怎么做,才能让领导爱听你的工作汇报?
  9. 每日一书丨由浅入深解析软件自动化的痛点问题
  10. 幕墙设计费收费标准(幕墙设计收费2022)