BJFU_数据结构习题_222基于链式存储结构的图书信息表的旧图书的出库
欢迎登录北京林业大学OJ系统
http://www.bjfuacm.com
222基于链式存储结构的图书信息表的旧图书的出库
描述
定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的待出库的旧图书的位置,将该图书从图书表中删除,最后输出该图书出库后的所有图书的信息。
输入
总计n+2行。首先输入n+1行,其中,第一行是图书数目n,后n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号和书名为字符串类型,价格为浮点数类型。之后输入第n+2行,内容仅为一个整数,代表待删除的旧图书的位置序号。
输出
若删除成功: 输出旧图书出库后所有图书的信息(书号、书名、价格),总计n-1行,每行是一本图书的信息,书号、书名、价格用空格分隔。其中价格输出保留两位小数。 若删除失败: 只输出以下一行提示:抱歉,出库位置非法!
输入样例 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
输出样例 1
9787302257646 Data-Structure 35.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
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
9
输出样例 2
Sorry,the position to be deleted is invalid!
#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
{int length; //数据域 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 Length_L(LinkList &L) //注意引用&符号:形参变化,改变实参
{ LinkList p=L; //p指向链表的头结点L->length=0; //链表的表长L->length初始化为0 while(p->next) //注意链表的头指针L不可改变,所以用p来操作{L->length++; //下一个结点存在,则链表的表长+1p=p->next; //更新指针p,指向下一个结点 }return OK;
}
int Delete_L(LinkList &L) //注意引用&符号:形参变化,改变实参
{LinkList p=L; //p指向链表的头结点,指向位置0int n; //删除第n个位置的结点cin>>n;if(1<=n&&n<=L->length) //删除位置合理,有L->length个位置可删除{ n--; //为了下面循环n-1次while(n--) //定位到位置n-1p=p->next; //循环结束时,p->next指向位置nLinkList s=p->next; //保留待删除结点p->next=p->next->next; //将结点p->next->next插在结点p后面delete s; //删除结点s,释放内存p=L->next; //p指向首元结点while(p) //若结点p存在,则输出相关信息{cout<<p->data.no<<" "<<p->data.name<<" "<<fixed<<setprecision(2)<<p->data.price<<endl; p=p->next; //更新结点p,指向下一个结点}}else //删除位置非法cout<<"Sorry,the position to be deleted is invalid!"<<endl; return OK;
}
int main()
{LinkList L; //定义LinkList类型的指针LInitList_L(L); //创建:给指针L分配地址,初始化Input_L(L); //输入数据Length_L(L); //计算链表L的表长L->lengthDelete_L(L); //给定位置插入,并输出相关信息return 0;
}
BJFU_数据结构习题_222基于链式存储结构的图书信息表的旧图书的出库相关推荐
- BJFU_数据结构习题_218基于链式存储结构的图书信息表的最贵图书的查找
欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 218基于链式存储结构的图书信息表的最贵图书的查找 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据 ...
- BJFU_数据结构习题_219基于链式存储结构的图书信息表的最爱图书的查找
欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 219基于链式存储结构的图书信息表的最爱图书的查找 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据 ...
- Python 数据结构 之 串 的链式存储结构
本文所采用的数据结构模板为 <数据结构教程>C语言版,李春葆.尹为民等著. 改篇所涉及到的是 串 的链式存储结构. 用Python仿照C语言来实现. 文章转载请注明: Python 数据 ...
- (数据结构)二叉树的链式存储结构
二叉树的顺序存储的缺点 因为并不是每个二叉树都是完全二叉树,普通二叉树使用顺序表存储或多或少会存在空间浪费的现象 图 1 普通二叉树的转化 如上图 1,普通二叉树里只有二个元素,最好的存储方式当然是开 ...
- 数据结构与算法4——链式存储结构
前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被 ...
- 链表list(链式存储结构实现)_5 线性表的链式存储结构
系列文章参考资料为<大话数据结构>,源码为个人私有,未经允许不得转载 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,可以使连续的,也可以不连续,也就意味这些元素可以 ...
- 图的链式存储结构解析(邻接表、逆邻接表、十字链表、邻接多重表)
图的矩阵表示法比较消耗空间,需要花费$ n 2 n^2 n2$个单元存储边(弧).在边数较少的情况下比较浪费.我们这里来讨论图的链式存储结构. 图的链式结构主要有四类:邻接表.逆邻接表.十字链表.邻接 ...
- 基于链式存储结构图书信息表各项操作
#include<iostream> #include<iomanip> #include<string> using namespace std; #defin ...
- haueoj1215: 基于链式存储结构的图书信息表的最爱图书的查找
题目描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息. 输入 总计n+m+2行.首先输入 ...
最新文章
- 使用PowerDesigner设计物理模型并运行脚本检查模型图解
- SQL Server调优系列基础篇(子查询运算总结)
- 如果 AI 和算法无罪,那么谁在杀死穷人?
- Vue工程模板文件 webpack打包
- JasperReports项目中的应用
- evt参数是干啥用的_塑料凳子上的洞,是干啥用的?
- 计算机一级上网题怎么创建桌面快捷方式,计算机一级上机操作题2016
- matlab2010激活问题
- 实际BCI应用:异步EEG/EOG BCI手抓取和释放的可行性
- virtualBox实现windows和Ubuntu之间的复制粘贴
- 两直线平行交叉相乘_向量平行公式和垂直公式
- android studio 电量分析,使用 Batterystats 和 Battery Historian 分析电池用量
- 网站故障和安全事件的应急预案
- 【微信小程序导入项目报错:[app.json文件内容错误]app.json未找到】解决方法
- CES 2019 前夕 | 万字长文回顾智能驾驶进化史
- 使用Focus for Mac怎样阻止应用程序?
- 项目管理的49个过程
- 如何使用正则表达式对输入数字进行匹配详解
- 监控工具——Prometheus
- 苹果电脑录屏怎么录内部声音?图文教学,1分钟快速学会