已知一个带有表头节点的单链表,节点结构为:{data,next},假设该链表只给出了头指针head,在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点.查找成功返回该结点的data值,并返回0;失败返回0.

#include <stdio.h>
#include <stdlib.h>
typedef struct LNode{int data;struct LNode *next;
}LNode;//头插创建单链表
void createLinkListH(LNode *&head){head=(LNode*)malloc(sizeof(LNode));head->next=NULL;int a[5]={5,4,3,2,1};for(int i=0;i<5;i++){LNode *p=(LNode*)malloc(sizeof(LNode));p->next=NULL;p->data=a[i];p->next=head->next;head->next=p;}
}
//方法一
int findreverseNUmber(LNode *&head,int k){//空链if(head->next==NULL) return 0;LNode *p=head->next;//记录链表长度int i=0;while(p!=NULL){i++;    p=p->next;}//检测非法操作 if(k<0||k>i){return 0;} LNode *s=head->next;for(int j=0;j<i;++j){//*key* if(j==i-k)printf("%d\n",s->data);s=s->next;}return 1;
}//方法二
int findElem(LNode *head,int k){printf("\n倒数第%d为:",k);LNode *p1,*p;p1=head->next;p=head;int i=1;while(p1!=NULL){p1=p1->next;++i;if(i>k)p=p->next;}if(p==head)return 0;else{printf("%d",p->data);return 1;      }
} void showAll(LNode *head){printf("遍历所有链表\n");LNode *p=head->next;while(p!=NULL){printf("%d",p->data);p=p->next;}printf("\n");
}int main(){LNode *head;createLinkListH(head); showAll(head);//findreverseNUmber(head,1);int k;scanf("%d",&k);findElem(head,k); return 0;
}

天勤数据结构-代码题2相关推荐

  1. 计算机数据结构代码题----Day02

    计算机数据结构代码题----Day02 顺序表代码题 题目01 从顺序表中删除其数值在给定数值为s与t之间,包含(s和t),要求(s<t)的所有元素,如果s或t的顺序不合理或者顺序表为空,则显示 ...

  2. 【23考研】计算机408数据结构代码题强化阶段划重点(王道书)

    视频链接:[23考研]10分钟带你整理408数据结构强化阶段代码题复习重点 本篇只适合考408的同学,请自主命题的同学自觉右上角×掉 因为王道书为了照顾自主命题的同学,所以很多算法也给出了代码实现,实 ...

  3. 23王道数据结构代码题全解(二)

    计划更新23王道数据结构所有课后代码习题的实现,虽然考试写的一般都是伪代码,但是强迫症的我还是全部实现了一遍,仓库在这里 代码全部是用 C++ 写的,都可以编译运行,包含暴力解和最优解. 持续更新,目 ...

  4. 23王道数据结构代码题全解(一)

    计划更新23王道数据结构所有课后代码习题的实现,虽然考试写的一般都是伪代码,但是强迫症的我还是全部实现了一遍,仓库在这里 代码全部是用 C++ 写的,都可以编译运行,包含暴力解和最优解. 持续更新,目 ...

  5. 23王道数据结构代码题全解(三)

    计划更新23王道数据结构所有课后代码习题的实现,虽然考试写的一般都是伪代码,但是强迫症的我还是全部实现了一遍,仓库在这里 代码全部是用 C++ 写的,都可以编译运行,包含暴力解和最优解. 持续更新,目 ...

  6. 大师兄手把手教你写考研数据结构代码题(50天代码整理合集)

    #include <stdio.h>#include <stdlib.h>//Day01 //在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一 ...

  7. 天勤数据结构代码——栈基本操作

    顺序栈 typedef struct SqStack {int data[maxSize]; //存放栈元素,数组大小,要开足够大(一般题目给)不给就开足够大,写注释.int top; //栈顶下标( ...

  8. 天勤数据结构代码——链表基本操作

    结构定义 typedef struct LNode {int data; // 数据域(可以是其他类型)struct LNode *next;//指针域 (此处代表指向后驱节点) }; A和B是两个单 ...

  9. 数据结构代码题--头插法和尾插法的应用

    头插法建立单链表(一般用于链表的逆置)头插防断链 就是说用头插法时要给 p指针一个后继结点 // 单链表的定义 typedef struct LNode{ElemType data;struct LN ...

最新文章

  1. Node.js实践第一天
  2. #翻译NO.4# --- Spring Integration Framework
  3. 详解centos7 YCM YouCompleteMe自动补全安装,亲测成功
  4. windows环境下注册安装GitHub Desktop使用方法详解
  5. python选择日期控件_Python3 自己写了个DateCtrl日期控件 | 学步园
  6. RabbitMQ消息队列:发布/订阅(Publish/Subscribe)
  7. 苹果 iPhone/iPad 第三方键盘为何没语音听写功能?真相了
  8. 计算机网络—物理层(思维导图)
  9. [转载]如何学习ANSYS?
  10. URLDecoder.decode 过时
  11. 机器学习 - 贝叶斯网络
  12. element-ui的分页,添加首页、尾页,跳转按钮
  13. 链家二手房成交数据分析(采用pytorch环境)
  14. nc63文件服务器,nc命令传输文件
  15. php前后端分离登录,前后端分离下如何登录
  16. 语义分割指标---MIoU详细介绍(原理及代码)
  17. 130个超实用的网站
  18. 【资源】年底送你一套编程视频(含源码)
  19. html如何做斑马表格
  20. 网易云信(验证码短信接口接入)

热门文章

  1. 第五届“泰迪杯“技能赛赛题讲解直播来啦
  2. 玩转华为ENSP模拟器系列 | 配置设备用SNMPv3 USM用户与网管通信示例
  3. edge浏览器被百度占用了如何解决?
  4. 你的WordPress网站经常被刷恶意搜索词?这有解决办法
  5. 车流量统计 matlab,基于视频的车流量统计——matlab代码
  6. 基于Weka的典型数据挖掘应用
  7. 51汇编——LCD1602显示
  8. Python自动化办公:将文本文档内容批量分类导入Excel表格
  9. Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request p
  10. 企业通讯录让沟通协作效率更高