数据结构实验:哈希表
2015-11-12 09:19
274 查看
数据结构实验:哈希表
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
在n个数中,找出出现次数最多那个数字,并且输出出现的次数。如果有多个结果,输出数字最小的那一个。输入
单组数据,第一行数字n(1<=n<=100000)。接下来有n个数字,每个数字不超过100000000
输出
出现次数最多的数字和次数。示例输入
3 1 1 2
示例输出
1 2
提示
来源
cz示例程序
#include <stdio.h> #include <stdlib.h> #define M 100000 typedef struct node { int num,time; struct node *next; }*A,B; A head[M]; int main() { A p,q,r; int n,i,fig=0,ci=0; int a; for(i=0; i<M; i++) { head[i]=(A)malloc(sizeof(B)); head[i]->next=NULL; } scanf("%d",&n); for(i=0; i<n; i++) { scanf("%d",&a); int y=a%M; p=head[y]->next; q=head[y]; while(p!=NULL) { if(p->num == a) { p->time++; if(p->time > ci) { fig=p->num; ci=p->time; } else if(p->time==ci) { if(p->num < fig) fig=p->num; } break; } q=p; p=p->next; } if(p==NULL) { r=(A)malloc(sizeof(B)); r->num=a; r->time=1; q->next=r; r->next=NULL; if(r->time > ci) { fig=r->num; ci=r->time; } else if(r->time==ci) { if(r->num < fig) fig=r->num; } } } printf("%d %d\n",fig,ci); return 0; }
相关文章推荐
- 数据结构实验之栈:行编辑器
- 数据结构学习偶遇英语
- 数据结构和算法C语言实现:链表的实现(基于动态内存分配)
- 数据结构学习方法
- HDU 4578-Transformation(线段树)
- 数据结构实验2
- 夺命雷公狗---Redis---2-Redis数据结构
- 中位数和顺序统计学之求解顺序统计量
- 数据结构学习 链表的建立
- 数据结构学习笔记:顺序表
- 典型的数据结构算法性能对比
- 数据结构上机测试2-2:单链表操作B
- 数据结构上机测试2-1:单链表操作A
- 数据结构上机测试1:顺序表的应用
- 循环队列的表示和实现(数据结构)
- 数据结构实验之二叉树四:还原二叉树
- 第九周--数据结构--矩阵的基本运算操作
- 第九周--数据结构--对称矩阵压缩存储的实现
- 二叉树的基本操作
- Java数据结构 遍历 排序 查找 算法实现