描述

某百货公司仓库中有一批电视机,按其价格严格从低到高的次序,以链表(链表含头结点)的形式存储于计算机中,链表的每个结点表示同样价格的电视机台数。现在又有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. springboot logback 集成

    在 application.yml 中敲 logging.pattern.consle ,IDEA 会联想到对应的值.单击属性就可以跳到 LoggingApplicationListener.java ...

  2. vba 调用 countif 函数问题

    源数据是A1:G18,需求是在K列显示A1:A18中各单元格重复出现的次数.在L列中是用countif函数直接计算的, Private Sub test() Dim rng As Range, i A ...

  3. ORA-01841: (full) year must be between -4713 and +9999,

    OGG报错日志: 2018-09-21 08:52:39 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_1b.prm: Re ...

  4. C# Hashtable

    哈希表(Hashtable) 在.NET Framework中,Hashtable 是 System.Collections 命名空间提供的一个容器,用于处理和表现类似 key-value 的键值对, ...

  5. MySQL主从同步技术

    一,先装mysql 准备两台服务器,主服务器是10.0.0.200 副服务器是10.0.0.128主服务器当作mysql的服务端,下载mysql-serveryum install mysql-ser ...

  6. 基于jdk1.8的HashMap源码学习笔记

    作为一种最为常用的容器,同时也是效率比较高的容器,HashMap当之无愧.所以自己这次jdk源码学习,就从HashMap开始吧,当然水平有限,有不正确的地方,欢迎指正,促进共同学习进步,就是喜欢程序员 ...

  7. 好用的 Chrome 插件,提升你的学习工作效率

    Google Chrome 应该是大部分人都用的一款浏览器,但却有很少人会注意到它丰富的扩展插件,擅于使用这些插件,能让自己的工作效率大大提高,今天趁着周末休息,就不谈技术伤大家的脑细胞了,给大家分享 ...

  8. css学习_css复合选择器

    css复合选择器 a.交集选择器  (即...又...:选择器之间不能有空格) p.one{color:red;] b.并集选择器(中间由逗号隔开) p,div{color:red;} c.后代选择器 ...

  9. atoi函数的用法

    库函数原型: #inclue <stdlib.h> int atoi(const char *nptr); 用法:将字符串里的数字字符转化为整形数.返回整形值. 注意:转化时跳过前面的空格 ...

  10. MySQL之视图、触发器、事务、存储过程、函数 流程控制

    MySQL之视图.触发器.事务.存储过程.函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 MySQL这个软件想将数据处理的所有事情,能够在mysql这个层面上全部 ...