描述

某百货公司仓库中有一批电视机,按其价格严格从低到高的次序,以链表(链表含头结点)的形式存储于计算机中,链表的每个结点表示同样价格的电视机台数。现在又有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: 数据结构实验:仓库管理的更多相关文章

  1. TZOJ 5347: 数据结构实验:删除链表元素

    描述 完成链表的创建.元素查找和删除等操作. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. void PrintLinkList(Node *head) { int flag = 0; ...

  2. 20145205 java语言实现数据结构实验一

    数据结构实验要求 综合类实验设计3 已知有一组数据a1a2a3a4--anb1b2b3b4--bm,其中ai均大于bj,但是a1到an和b1到bm不是有序的,试设计两到三个算法完成数据排序,且把bj数 ...

  3. SDUT 3311 数据结构实验之串三:KMP应用

    数据结构实验之串三:KMP应用 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 有n个小朋友 ...

  4. SDUT 3346 数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七:叶子问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知一个按 ...

  5. SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历

    数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  6. SDUT 3347 数据结构实验之数组三:快速转置

    数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一 ...

  7. SDUT 2772 数据结构实验之串一:KMP简单应用

    数据结构实验之串一:KMP简单应用 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给定两个 ...

  8. SDUT 3345 数据结构实验之二叉树六:哈夫曼编码

    数据结构实验之二叉树六:哈夫曼编码 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 字符的编 ...

  9. SDUT 3340 数据结构实验之二叉树一:树的同构

    数据结构实验之二叉树一:树的同构 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 给定两棵树 ...

随机推荐

  1. 在win10企业版x64下使用curl命令

    一.curl命令介绍 curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 详情查看百度百科 ...

  2. Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建

    一.Centos6下安装Mysql 检测下系统有没有自带的mysql:yum list installed | grep mysql, 如果已经有的话执行命令yum -y remove mysql-l ...

  3. 阿里云ECS服务器主机安装多个网站

    web|服务器|站点 Windows 2000 Server安装成功后,一般会启动一个默认的Web站点,为整个网络提供Internet服务.在中小型局域网中,服务器往往只有一台,但是一个Web站点显然 ...

  4. Go-MySQL-Driver

    1.下载Go-Mysql-Driver go get github.com/go-sql-driver/mysql 2.引入import import( "database/sql" ...

  5. div界面浮动插件

    <title>JS浮动广告</title> <style type="text/css"> img{border:0;} </style& ...

  6. Linux systemd limits

    https://www.cnblogs.com/IMxY/p/8941022.html limits 关于Centos 7 / RHEL 7 中的limits要了解以下几点: CentOS 7 / R ...

  7. [Model] GoogLeNet

    主要就是对Inception Module的理解 网络结构分析 没有densy layer竟然,这是给手机上运行做铺垫么. 一个新型的模块设计: [不同类型的layer并行放在了一起] 最初的设计: ...

  8. SpringMVC 文件上传配置,多文件上传,使用的MultipartFile

    一.配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file <!-- 配置Multipa ...

  9. SpringBoot(十四)-- 整合Swagger2

    1.pom依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-s ...

  10. [原]CentOS 7 网卡子接口的创建

    OS:CentOS 7 在linux上创建vlan需要加载802.1q模块: 1.检测OS是否已经加载802.1q模块 [root@controller ~]# modinfo 8021q filen ...