TZOJ 5640: 数据结构实验:仓库管理
描述
某百货公司仓库中有一批电视机,按其价格严格从低到高的次序,以链表(链表含头结点)的形式存储于计算机中,链表的每个结点表示同样价格的电视机台数。现在又有m台价格为x元的电视机准备入库,请将其加入到链表中(保证价格仍然严格从低到高)完成入库操作。
链表结点(Node类型)包含三个域,分别为价格、数量和指针域:
cost | num | next |
题目部分代码已经完成,您只需要补充并提交以下函数:
void Add(Node* head, int m, int x);//其中head为链表头指针,m和x见题意
输入
输入数据的第一行为原始链表中结点的数目n。
接下来有n行,每行为2个正整数mi和xi,表示链表中各个结点的电视机台数和价格,其中x1<x2<x3<...<xn。
下一行有两个正整数m和x,表示待入库的电视机台数和价格。
输出
输出插入完成后,从头到尾遍历链表并输出电视的台数和价格,每行一个结点。
样例输入
3
1 1000
3 2000
2 3000
10 2100
样例输出
1 1000
3 2000
10 2100
2 3000
#include <bits/stdc++.h>
using namespace std;
struct Node
{
int num,money;
Node *next;
};
void Printff(Node *head)
{
Node *e=head->next;
while(e)
{
cout << e->num << " " << e->money << endl;
e=e->next;
}
}
void Add(Node* head, int m, int x)
{
Node *e=head->next; //e为第一个节点
if(x<e->cost) //特判最小
{
Node *q=(Node*)malloc(sizeof(Node));
q->num=m,q->cost=x;
q->next=head->next;
head->next=q;
return;
}
while(x>e->cost)
{
e=e->next;
if(e==NULL)
break;
}
if(e==NULL) //没有找到
{
Node *p=head->next;
while(p->next!=NULL)
{
p=p->next;
}
Node *q=(Node*)malloc(sizeof(Node));
q->num=m,q->cost=x,q->next=NULL;
p->next=q;
}
else //在链表里面找打比他大的money
{
if(e->cost==x)
{
e->num+=m;
}
else if(e->cost>x)
{
Node *p=head->next;
while(p->next->cost<x&&p->next!=NULL)
{
p=p->next;
} //找到他的上一个节点
Node *t=(Node*)malloc(sizeof(Node));
t->num=m,t->cost=x;
t->next=p->next;
p->next=t;
}
}
}
Node *Creat()
{
int n,d1,d2;
Node *head,*rear;
head=new Node,head->next=NULL,rear=head;
cin>>n;
while(n--)
{
cin>>d1>>d2;
Node *e=new Node;
e->num=d1,e->money=d2,e->next=NULL;
rear->next=e;
rear=e;
} return head;
}
int main()
{
Node *head;
head=Creat();
int m,x;
cin>>m>>x;
Add(head,m,x);
Printff(head);
}
TZOJ 5640: 数据结构实验:仓库管理的更多相关文章
- TZOJ 5347: 数据结构实验:删除链表元素
描述 完成链表的创建.元素查找和删除等操作. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. void PrintLinkList(Node *head) { int flag = 0; ...
- 20145205 java语言实现数据结构实验一
数据结构实验要求 综合类实验设计3 已知有一组数据a1a2a3a4--anb1b2b3b4--bm,其中ai均大于bj,但是a1到an和b1到bm不是有序的,试设计两到三个算法完成数据排序,且把bj数 ...
- SDUT 3311 数据结构实验之串三:KMP应用
数据结构实验之串三:KMP应用 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 有n个小朋友 ...
- SDUT 3346 数据结构实验之二叉树七:叶子问题
数据结构实验之二叉树七:叶子问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知一个按 ...
- SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- SDUT 3347 数据结构实验之数组三:快速转置
数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一 ...
- SDUT 2772 数据结构实验之串一:KMP简单应用
数据结构实验之串一:KMP简单应用 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给定两个 ...
- SDUT 3345 数据结构实验之二叉树六:哈夫曼编码
数据结构实验之二叉树六:哈夫曼编码 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 字符的编 ...
- SDUT 3340 数据结构实验之二叉树一:树的同构
数据结构实验之二叉树一:树的同构 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给定两棵树 ...
随机推荐
- Excel中substitute替换函数的使用方法
问题现象:在Excel中,对几千条数据按照时间顺序排序,但总是有部分数据不参与排序,单纯用单元格调整不起任何作用. 解决办法: 数据排列问题最重要的是数据格式的一致性.解决这个问题,建议按如下步骤: ...
- 聊聊Python中的生成器和迭代器
Python中有两个重要的概念,生成器和迭代器,这里详细记录一下. 1. 生成器 什么是生成器呢? 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包 ...
- ICMP timestamp 请求响应漏洞
ICMP timestamp请求响应漏洞 解决方案: * 在您的防火墙上过滤外来的ICMP timestamp(类型13)报文以及外出的ICMP timestamp回复报文. google之, ...
- [转]搞个这样的 APP 要多久
我有些尴尬地拿着水杯,正对面坐着来访的王总,他是在别处打拼的人,这几年据说收获颇丰,见移动互联网如火如荼,自然也想着要进来干一场,尽管王总从事的行当也算跟IT沾边,但毕竟太长时间不接触技术,有些东西不 ...
- 使用UWA GOT优化Unity性能和内存
优化百科: https://blog.uwa4d.com/archives/Index.html https://blog.uwa4d.com/archives/Introduction_UWAGOT ...
- java遇见的问题分析
下面就一些java的一些基本问题进行解释.其中蓝色部分为handsomecui的主观看法 一.synchronized(obj)里面的参数怎么解释? synchronized的参数代表的是“对象锁”代 ...
- 【PostgresSQL】同时更新两个表
UPDATE table1 SET column = value FROM table2 WHERE table1.column2 = table2.column2
- 【中间件安全】Nginx 安全加固规范
1. 适用情况 适用于使用Nginx进行部署的Web网站. 2. 技能要求 熟悉Nginx配置,能够Nginx进行部署,并能针对站点使用Nginx进行安全加固. 3. 前置条件 1. 根据站点开放端口 ...
- UML中类结构图示例
- C语言结构体初始化(转载)
<代码大全>建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化. 1.初始化 typedef struct _TEST_ ...