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
PS:附赠调试代码,/**/符号自行删除哦#include<stdio.h> #include<stdlib.h> #include<string.h> /* typedef struct Node {int cost,num;struct Node *next; }Node; Node *CreateLinkList(int n) //头结点数据域为空 {int i;Node *pre,*q,*head;head = (Node*)malloc(sizeof(Node));pre = head;pre->next = NULL;for(i=0; i<n; i++){q = (Node*)malloc(sizeof(Node));scanf("%d %d",&q->num,&q->cost);pre->next = q;pre = q;q->next = NULL;}return head; } */void Add(Node* head, int m, int x) {Node *pre,*p,*q;pre = head->next;if(pre->cost > x) //要插在头结点后面,即第一个节点 {q = (Node*)malloc(sizeof(Node));q->num = m;q->cost = x;q->next = pre;head->next =q;return;}while(pre->next && pre->cost<x) //寻找x的位置,等于在原位置 {if(pre->next->cost>x) break; // x 比下一个值要小,结束pre = pre->next;} //假如运行到尾结点,即最后节点停止if(pre->cost == x) //两个值相等,就相加pre->num = pre->num + m;else{q = (Node*)malloc(sizeof(Node));q->num = m;q->cost = x;q->next = pre->next;pre->next = q;}} /* void PrintLinkList(Node *head){Node *p = head->next, *q;while(p){printf("%d %d\n", p->num,p->cost);q = p;p = p->next;free(q);}free(head); } int main() {int n,m,x;scanf("%d",&n);Node* head = CreateLinkList(n);scanf("%d %d",&m,&x);Add(head, m, x);PrintLinkList(head);return 0; } */
转载于:https://www.cnblogs.com/lenka-lyw/p/10891263.html
TZOJ 5640: 数据结构实验:仓库管理相关推荐
- TZOJ 5471: 数据结构实验--图的最小代价生成树
题目描述 求带权无向图的最小代价生成树. 输入 输入数据为多组,每组数据包含多行,第一行为2个整数n,e,n为图的顶点数,e为边数,接下来是e行,每行3个整数,前两个整数是一个顶点对,代表一条边所依附 ...
- 数据结构实验之链表五:单链表的拆分-sdut
数据结构实验之链表五:单链表的拆分 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 输入N个 ...
- SDUT OJ 数据结构实验之排序一:一趟快排
数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...
- SDUT-2449_数据结构实验之栈与队列十:走迷宫
数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...
- sdut 2137 数据结构实验之求二叉树后序遍历和层次遍历
数据结构实验之求二叉树后序遍历和层次遍历 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descr ...
- sdut 3341数据结构实验之二叉树二:遍历二叉树
数据结构实验之二叉树二:遍历二叉树 Time Limit: 1000MS Memory Limit: 65536K Problem Description 已知二叉树的一个按先序遍历输入的字符序列,如 ...
- sdut 2088 数据结构实验之栈与队列十一:refresh的停车场
数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- sdut 2135 数据结构实验之队列一:排队买饭
数据结构实验之队列一:排队买饭 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descriptio ...
- sdut 1479 数据结构实验之栈与队列九:行编辑器
数据结构实验之栈与队列九:行编辑器 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descript ...
最新文章
- 无边框窗体和用户控件以及权限
- big endian little endian
- 项目管理协作软件,打造超强执行力团队!
- JavaScript实现递归楼梯问题(迭代解决方案)算法(附完整源码)
- OpenCV进行图像相似度对比的几种办法
- 面试用涉及到的jvm常见的面试题(一)
- 【原创】搭建spark环境中的坑及解决办法
- java 数据结构--希尔排序
- python好学吗-Python对于没有计算机基础知识的人来说,好学吗?
- Page_Load基类,重写OnLoad
- Drool规则引擎入门实例
- Flixel Dame 坦克大战(二)Dame-editor使用指南
- Windows 10正式版的历史版本
- Pythonic写法
- Hadoop in action 第45678章
- Python中常见的__init__.py是什么意思?详解Python import的方式和原理
- ddos攻击怎么防?防御ddos的几种方法
- 光猫可以直接接交换机吗 交换机能直接连光猫吗
- 基于asp.net706酒店客户关系管理系统
- html图片右上角删除按钮,图片右上角删除
热门文章
- OpenCV4每日一练day1:VS2015+opencv4.1.0+读图测试
- php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题
- c语言isblank函数怎么用,ISBLANK函数详解_Excel公式教程
- php十二星座_php计算十二星座的函数代码
- macOS安装mysql后,进入mysql出现command not found
- java 代码里设置环境变量_如何在一个java程序里设置环境变量
- java 泛型 类型实参(type argument)
- pytorch torchvision.transforms.ToTensor
- setuptools include_package_data
- Basic concepts behind Web Audio API