当前位置: 首页 > news >正文

【数据结构】PTA 求链表的倒数第m个元素 C语言

请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第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 

AC代码:

ElementType Find( List L, int m ){List L0=L;//算出总的结点数int sum;if(!L0) sum=0;else sum=1;while(L0->Next){L0=L0->Next;sum++;}//倒数换成正数m=sum-m+1;if(m<=0) return ERROR;int i;for(i=2;i<=m;i++){L=L->Next;}return L->Data;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++的拷贝构造,拷贝复制和析构
  • LLM应用实战: 产业治理多标签分类
  • C语言函数详解(上)【库函数】
  • 十要素超声波气象传感器
  • 「数组」希尔排序 / 区间增量优化(C++)
  • SpringBoot 整合 Excel 轻松实现数据自由导入导出
  • Browserless 网页抓取:Playwright 中的 NodeJS
  • 第2章 C语言基础知识
  • Windows C++控制台菜单库开发与源码展示
  • Java 调整字符串,验证码生成
  • Qt第十七章 多线程
  • ElfBoard技术贴|如何在ELF 1开发板上搭建流媒体服务器
  • 高性能web服务器nginx
  • Mac文件需要分卷压缩怎么办 Mac上怎么解压分卷压缩的文件
  • 二、什么是Vue中的响应式?Vue的响应式原理
  • create-react-app做的留言板
  • gcc介绍及安装
  • Go 语言编译器的 //go: 详解
  • JavaScript服务器推送技术之 WebSocket
  • Swift 中的尾递归和蹦床
  • Vue2.0 实现互斥
  • vue-router 实现分析
  • 安卓应用性能调试和优化经验分享
  • 百度小程序遇到的问题
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第2章 网络文档
  • 记录:CentOS7.2配置LNMP环境记录
  • 深度学习入门:10门免费线上课程推荐
  • 译自由幺半群
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • UI设计初学者应该如何入门?
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​比特币大跌的 2 个原因
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • ###C语言程序设计-----C语言学习(6)#
  • #pragma预处理命令
  • (152)时序收敛--->(02)时序收敛二
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C)一些题4
  • (八)Flask之app.route装饰器函数的参数
  • (笔试题)合法字符串
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (五)Python 垃圾回收机制
  • *上位机的定义
  • .gitignore文件设置了忽略但不生效
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 中的路径问题
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Web项目创建比较不错的参考文章
  • .Net 知识杂记
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景