博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACM-单向链表的操作
阅读量:6673 次
发布时间:2019-06-25

本文共 2025 字,大约阅读时间需要 6 分钟。

数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:

先输入键值对的个数

然后输入成对的index和value值,以空格隔开

输出描述:

输出合并后的键值对(多行)

#include 
#include
using namespace std;struct table{ int id; int value; struct table *next;};typedef struct table *LinkList;void AddNode(LinkList *HeadList,int id,int value,int i){ LinkList p = *HeadList; for(int j = 0;j < i;j++) p = p->next; LinkList node = (LinkList)malloc(sizeof(struct table)); p->next = node; node->id = id; node->value = value; node->next = NULL;}void swap(LinkList *Node1,LinkList *Node2){ LinkList Node3 = (LinkList)malloc(sizeof(struct table)); LinkList node1 = *Node1; LinkList node2 = *Node2; Node3->id = node1->id; Node3->value = node1->value; node1->id = node2->id; node1->value = node2->value; node2->id = Node3->id; node2->value = Node3->value; }void Rank(LinkList *HeadList){ LinkList p = *HeadList; p = p->next; while(p != NULL){ LinkList p_p = *HeadList; p_p = p_p->next; while(p_p != NULL){ if(p->id < p_p->id) swap(&p,&p_p); p_p = p_p->next; } p = p->next; }}void ListPrint(LinkList *HeadList){ LinkList p = *HeadList; p = p->next; while(p != NULL){ while(p->id == p->next->id){ if(p->next != NULL) { p->next->value += p->value; p = p->next; } else break; } printf("%d %d",p->id,p->value); printf("\n"); p = p->next; }}int main(){ int id,value; LinkList list = (LinkList)malloc(sizeof(struct table)); int n; list->id = 0; list->value = 0; while(scanf("%d",&n) != EOF){ for(int i = 0;i < n;i++){ scanf("%d %d",&id,&value); AddNode(&list,id,value,i); } Rank(&list); ListPrint(&list); } free(list); return 0;}

 

转载于:https://www.cnblogs.com/qiang-wei/p/9321119.html

你可能感兴趣的文章
New与Class对象创建
查看>>
windows下实现wamp与tomcat环境整合
查看>>
我的友情链接
查看>>
Windows Server 2012 R2搭建IIS服务器
查看>>
SCVMM 2012 R2运维管理二之:安装域控制器
查看>>
[Fibre Channle 实战之三]FC 和iSCSI的使用差异
查看>>
c#winform选择文件,文件夹,打开指定目录方法
查看>>
traceroute
查看>>
如何划分man文档的章节
查看>>
微信公众号的分类
查看>>
分布式高可用存储(drbd+corosync+pacemaker+MooseFS)
查看>>
css3动画简介以及动画库animate.css的使用
查看>>
后台管理前端选型
查看>>
Nginx+Lua+Redis连接池
查看>>
hadoop编译
查看>>
Favicon
查看>>
ubuntu下安装与卸载软件方法-转载
查看>>
LeetCode]Integer to Roman AND ROman to Integer
查看>>
关于datepart计算weekday时多一天引起的问题及解决方法
查看>>
MySQL python 数据迁移脚本
查看>>