首页 > 编程语言 >假设该链表只给出了头指针 head。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的 data值,并返回1;否则,只返回

假设该链表只给出了头指针 head。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的 data值,并返回1;否则,只返回

时间:2024-04-22 21:13:14浏览次数:25  
标签:返回 结点 head 链表 算法 查找

假设该链表只给出了头指针 head。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的 data值,并返回1;否则,只返回 0。

/*******************************************************************
*
*	函数名称:	LList_found
*	函数功能:   查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的 data值,并返回                1;否则,只返回 0。
* 	函数参数:   
*  	   @a :   *head
*      @b :
*   返回结果:   1或0
* 	注意事项:   None
* 	函数作者:   [email protected]
*	创建日期:   2024/04/22
*	修改历史:
*	函数版本:	V1.0
* *****************************************************************/
int LList_found(*head)
{
	int count = 1,temp = 0;
	if(NULL == head->next)//判断是否只有头指针,如果只有头指针就返回0
	{
		return 0;
	}
	while(head->next)//遍历链表
	{
		head = head->next;
		count++;//记录链表个数
	}
	for(int i = 0;i<count-k;i++)
	{
		temp = head->data;//对新节点数据域进行备份
		head = head->next;//再次遍历
	}
	printf("%d\n",temp);
	return 1;
}

标签:返回,结点,head,链表,算法,查找
From: https://www.cnblogs.com/lwj294/p/18151541

相关文章

  • 查找链表中倒数第k个数
    include<stdio.h>include<stdbool.h>include<stdlib.h>/********************************************************************函数名称: MinDelate函数功能:/*假设该链表只给出了头指针head。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k(......
  • C语言单向链表的创建和增删减查相关程序
    对单向链表进行删除和插入的程序设计/********************************************************************* filename: linkedlist.c* author :[email protected]* date :2024/04/22* function:实现单向链表的创建、拆入、删除功能* note :None**......
  • 删除链表中最小的一个结点
    include<stdio.h>include<stdbool.h>include<stdlib.h>//指的是单向链表中的结点有效数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造链表的结点,链表中所有结点的数据类型应该是相同的typedefstructLinkedList{DataType_tdata;//结点......
  • 删除链表中的尾部结点
    删除链表中的尾部结点/********************************************************name:DelTailNode* function:删除链表尾部结点*argument*@head:链表头结点的地址**retval:成功返回1,失败返回0*author:Dazz*......
  • 《渣男代码历险记》第五章:设计一个算法删除单链表L(有头结点)中的一个最小值结点
    为了删除单链表L中的一个最小值结点,我们可以遍历链表,找到最小值结点及其前驱结点,然后修改前驱结点的指针,使其指向最小值结点的下一个结点。以下是算法的解析和代码实现:初始化两个指针pre和cur,分别指向头结点和头结点的下一个结点。初始化一个变量min_val,用于存储当前最小值,将其......
  • C语言实现链表增删减改
    /********************************************************************filename: main.cauthor :[email protected] :2024/04/22function:实现对链表的增删改查note :NoneCopyRight(c)[email protected]***......
  • 单向顺序链表的创建,增,删,减,查
    单向顺序链表的创建,增,删,减,查/********************************************************************* filename: 单向顺序链表的创建,增,删,减,查* author :[email protected]* date : 2024-4-22* function:* note :None** CopyRight(c)20241764......
  • 对链表中最小数据项对应的结点删除
    //指的是顺序表中的元素的数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造链表SeqList—_t的结点,结点中包含数据域和指针域,并且所有结点中的数据应该相同typedefstructSeqList{DataType_tData;structSeqList*next;}LinkList_t;//创建......
  • 设计一个算法删除单链表L(有头结点)中的一个最小值结点。
    思路1:定义一个变量=遍历每一个当前地址下面的数据和下一个作比较,谁小把谁的值给这个变量,同时记录这个小值的位置i,依次遍历比较,得到最小值和最小值的结点i的值,然后删除这个结点。思路2:给两个指针,p1,p2开始都指向第一个,然后p2指向下一个地址,和p1下的data作比较,得到的小值的p不动......
  • Word查找替换通配符(软件著作权用代码文档需求)
    在提交软件著作权所需的代码文档时,需要去掉空行、注释等无关内容,使用Word可以很方便的处理:1、查找//开头的注释,并删除:勾选:通配符,查找://*^13,替换为:^p2、查找/*开头,*/结尾的注释,并删除:勾选:通配符,查找:(/\*)*(\*/),替换为:空3、查找包含制表符的多个空行,并删除:勾选:通配符,查找:(^13)^t......