6-3 求链表的倒数第m个元素
6-3 求链表的倒数第m个元素 (20 分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。
函数接口定义:
ElementType Find( List L, int m );
其中List结构定义如下:
typedef struct Node *PtrToNode;
struct Node {ElementType Data; /* 存储结点数据 */PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */
L是给定的带头结点的单链表;函数Find要将L的倒数第m个元素返回,并不改变原链表。如果这样的元素不存在,则返回一个错误标志ERROR。
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>#define ERROR -1typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {ElementType Data;PtrToNode Next;
};
typedef PtrToNode List;List Read(); /* 细节在此不表 */
void Print( List L ); /* 细节在此不表 */ElementType Find( List L, int m );int main()
{List L;int m;L = Read();scanf("%d", &m);printf("%d\n", Find(L,m));Print(L);return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
5
1 2 4 5 6
3
输出样例:
4
1 2 4 5 6
ElementType Find( List L, int m )
{List a = L->Next;List b = L->Next;while(b&&m--){b = b->Next;}if(m>0)return ERROR;while(b){a = a->Next;b = b->Next;}return a->Data;
}
6-3 求链表的倒数第m个元素相关推荐
- 求链表的倒数第m个元素
习题3.5 求链表的倒数第m个元素 (20 分) 请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素. 函数接口定义: ElementType ...
- 6-7 求链表的倒数第m个元素 (25 分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素. 函数接口定义: ElementType Find( List L, int m ); 其 ...
- 习题3.5 求链表的倒数第m个元素 (20 分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素. 函数接口定义: ElementType Find( List L, int m ); 其 ...
- 链表题目--2 求链表的中间结点 和 求链表中倒数第k个结点
求链表的中间结点 思路 一个走两步,一个走一步.一个走到尾,另外一个就走到了中间 /*** Definition for singly-linked list.* struct ListNode {* ...
- 求链表的倒数第N个节点
最近看一本书上有求链表的倒数第N个节点,简单实现了下 链表,实现方案如下 1.不借助链表长度顺序遍历倒数第N个节点 GetReserveN就是如此实现. 2.当然如果链表记录了节点长度也可以直接正序遍 ...
- 如何找出单链表中倒数第K个元素
第一种方法 为了找出单链表的倒数第K个元素,需要知道这个单链表的长度是多少,就是需要遍历一遍这个单链表,长度为n,倒数第k个,就是单链表的第(n-k)个元素 public Node findLastK ...
- 数据结构 如何删除单向链表的倒数第m个元素
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 建立tm ...
- 单链表输出倒数第k个元素
这个算法已经有不少人写过了,但是为了考研后期复习还是在此记录一下自己的心得. 方法有如下几种: 1. 遍历单链表两次,第一次获取链表总长度,第二次寻找倒数第K个元素就很简单了.但是该方法需要遍历两次链 ...
- 如何快速查看单链表倒数第K个元素
大致思路:只需要一次遍历即可查找到倒数第k个元素.由于单链表只能从头到尾依次访问链表的各个节点,因此,如果要找到链表的倒数第k个元素的话,也只能从头到尾进行遍历查找,在查找过程中,设置两个指针,让其中 ...
最新文章
- sqlserver附加数据库错误823的解决方案
- 【计算理论】可判定性 ( 丘奇-图灵论题 | 可判定性引入 | 图灵机语言 | 图灵机结果 | 判定机 | 部分函数与全部函数 | 可判定性定义 )
- Python获取当前目录和上级目录
- 多图技术贴:深入浅出解析大数据平台架构
- 向Spark集群提交任务
- wpf treeview使用expanded事件出错的问题
- 每日一题/007/级数/设a_n=1-1/2+1/3- ... + (-1)^(n-1)*1/n,求 lim_{n\to\infty}a_n
- 【UE4(虚幻)】学习笔记(六)----蓝图接口、事件分发器、子弹击打不同物体会有不同效果的实现思路、 数据表的使用与背包框架的搭设
- 无法显示计算机列表,W7系统Internet Explorer无法显示该页面
- 为什么upupoo显示服务器维护中,首先,电脑能正常上网,有的网站可以上传图片,但就是不能显示上传图片的功能按钮,网页打开都正常。...
- 8个LED灯分别以不同频率闪烁
- 中断处理过程示意图_中断和中断处理流程
- matlab 多项式降幂,MATLAB自动将向量元素按降幂顺序分配给各系数值.PPT
- 数据库视图有什么作用
- 面试自我介绍5句话公式
- 【40-系统性能压力测试基本概念-相关性能指标HPSTPSQPSRT-安装Jmeter教程-JMeter测试流程-线程组-取样器-监视器-测试商城首页-JMeter Address 占用的问题】
- iOS6和iOS7代码的适配(2)——status bar
- Unity 网络摄像设备 - WebCamDevice
- 京瓷4501i打印机扫描步骤_京瓷网络扫描发送到SMB设置步骤,win7系统电脑参考方法...
- 设计没素材没灵感,这些网站可以帮你快速找到你需要的照片