数据结构_实验1:链表的应用
来源:互联网 发布:网络设备监控软件 开源 编辑:程序博客网 时间:2024/05/18 15:05
题目:求相邻k个节点数值之和最大的第一节点
输入数据(设为整型)建立单链表,并求相邻k个节点data值之和为最大的第一节点。例如输入k = 2,数据为2 6 4 7 3 #(#为结束符),建立下面链表,运行结果输出(序号3,data值4):
输入数据(设为整型)建立单链表,并求相邻k个节点data值之和为最大的第一节点。例如输入k = 2,数据为2 6 4 7 3 #(#为结束符),建立下面链表,运行结果输出(序号3,data值4):
书上学的数据结构总是用指针和链表来操作,和刷题时的程序有点不一样,需要多练习
#include <cstdio>#include <cstdlib>int k,k1; //k1为k的临时替代int sum; //每次遍历的和int coun = 1; //每个元素的序号int maxsum = 0; //当前最大的和int ans1,ans2; //存储输出的的序号和数值typedef struct node //定义单链表{int data,time;struct node *next;}linknode,*link;link CreateList() //建立新单链表,输入和存储{int a;link H,p,r; //表头,新节点,表尾H = (link)malloc(sizeof(linknode));r = H;printf("Input numbers:\n");while(scanf("%d",&a)&&a!='#'){ p = (link)malloc(sizeof(linknode)); p->data = a; p->time = coun; coun++; r->next = p; r = p;}r->next = NULL;return H;}void Adjmax(link H) //遍历求和与输出{ link p,p1,q,r,s,t; p = H->next; if((p == NULL)||(coun-1 < k)) return ; //数据错误不做任何操作 while(p) //求相邻k个元素的和 { k1 = k; sum = 0; p1 = p; while((k1--)&&(p1)) { sum += p1->data; q = p1->next; p1 = q; } if(sum > maxest) { ans1 = p->time; ans2 = p->data; maxest = sum; } p = p->next; } printf("order:%d\ndata:%d\nmaxsum:%d",ans1,ans2,maxest); return ;}int main(){ printf("Input k:\n"); scanf("%d",&k); Adjmax(CreateList());return 0;}
0 0
- 数据结构_实验1:链表的应用
- 数据结构_实验3:队列的应用
- 数据结构实验1_顺序表的操作
- 链表的应用(数据结构实验题)
- 数据结构_线性表_顺序存储之1顺序栈2共享栈_链式存储之链栈_栈的应用举例
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- 数据结构01_线性表_实验楼学习笔记
- 《数据结构》的实验1
- 哈工大数据结构实验3 图的应用
- sdut.acm2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表四:有序链表的归并
- sdut.acm2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表三:链表的逆置
- 实验十三_编写、应用中断例程_ 1
- 《数据结构》实验二:线性表的实验
- 《数据结构》实验二 线性表的实验
- 《数据结构》实验二:线性表的实验
- 数据结构实验二 :线性表的实验
- 《数据结构》实验二 线性表的实验
- 《数据结构》实验二:线性表的实验
- Docker容器的跨主机连接
- 一起做面试题--递归读取文件
- Qt窗口全部显示
- 【数据结构】栈和队列
- uva 624 CD
- 数据结构_实验1:链表的应用
- 关于树分块算法的一些研究
- 两点小结
- 2013年第四届蓝桥杯C/C++程序设计本科B组决赛
- Spark学习笔记:Pregel API
- (OK) Fedora23—NS3—Docker—MANETs—Testing
- poj 2349 Arctic Network(最小生成树变形)
- java中将byte转化为字母
- Spring_Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别