首页 > 其他分享 >笔试题:查找链表中倒数第k(k为正整数)个位置上的结点

笔试题:查找链表中倒数第k(k为正整数)个位置上的结点

时间:2024-04-23 09:03:24浏览次数:35  
标签:结点 遍历 FPhead SPhead 链表 LList 倒数第

数据结构

链表

笔试题:

image

(1)算法的基本设计思想:定义两个结构体指针FPhead和SPhead,其中,FPhead需要从头遍历链表,当FPhead和SPhead之间的距离相差k-1,则调动SPhead开始遍历链表,从而确定倒数第k个位置上的结点。

(2)算法的详细实现步骤:定义一个整型变量用来储存两个结构体指针FPhead和SPhead之间的距离,用while循环遍历链表,当FPhead和SPhead之间的距离相差k-1,则调动SPhead开始遍历链表,输出SPhead的结点的data值,并返回1,进行错误处理,返回0。

(3)算法代码:

int LList_Sel(LList_t *head,int k)
{
	//定义一个整型变量,判断FPhead和SPhead之间的位置
	int cnt = 0;
	LList_t *FPhead = head;
	LList_t *SPhead = head;

	//进行错误处理
	if (NULL == FPhead)
	{
		return 0;
	}

	//判断首结点的指针域是否为NULL,如果为NULL,则退出循环
	while(FPhead->next)
	{
		FPhead = FPhead->next;
		cnt++;
		//当FPhead和SPhead之间的位置大于k-1时,SPhead开始遍历
		if (cnt > (k - 1))
		{
			SPhead = SPhead->next;
		}	
	}
	printf("The %d-to-last data value is %d\n",k,SPhead->data );
	return 1;
}

标签:结点,遍历,FPhead,SPhead,链表,LList,倒数第
From: https://www.cnblogs.com/cwp-home/p/18152020

相关文章

  • 数据结构链表笔试题
    数据结构链表笔试题笔试题3:设计一个算法删除单链表L(有头结点)中的一个最小值结点/********************************************************************* 函数名称: LList_Del* 函数功能:删除链表中最小值节点* 函数参数: * @L:传递头节点的地址*返回......
  • 倒数链表
    看了上面这个考研专题后,小白经过深思熟虑,可以备份俩个头结点,然后分别进行遍历,因为需要知道倒数第K个结点的地址,所以,当循环遍历时,俩个指针在遍历的时候需要间隔k-1次,所以代码如下:/********************************************************************* name : LinkedList_......
  • 笔试题:设计一个算法删除单链表L(有头结点)中的一个最小值结点
    数据结构——笔试题设计一个算法删除单链表L(有头结点)中的一个最小值结点/*********************************************************funcname:DelMinNode*author:[email protected]*date:2024/04/22*function:删除单链表L(有头结点)中的一个最......
  • JZ8 二叉树的下一个结点
    #include<cstddef>classSolution{public:vector<TreeLinkNode*>nodes;//用户得到的输入只有一个子树根节点TreeLinkNode*GetNext(TreeLinkNode*pNode){TreeLinkNode*root=pNode;//获取根节点 //顺着next指针一直......
  • 顺序表和链表的练习题
    顺序表题目一:题目分析:该题目需要先对顺序表进行遍历至元素x正确插入位置,再对顺序表完成插入操作。因此涉及到for循环与if语句的使用代码实现/********************************************************************** name : SequenceList_insert* function:实现插......
  • 查找链表中倒数第k(k为正整数)个位置上的结点,查找成功输出该结点的data值,并返回1,否则只
    /********************************************************name:FindKNode* function:查找链表中倒数第k(k为正整数)个位置上的结点*查找成功输出该结点的data值,并返回1,否则只返回0*argument*@head:链表头结点的地......
  • 删除最小值结点
    /********************************************************name:DelTargetNode* function:删除单链表L(有头结点)中的一个最小值结点*argument*@L:链表头结点的地址**retval:None*author:Dazz*date:......
  • 查找链表中倒数第k个值
    查找链表中倒数第k个值/********************************************************************** name : deletelinkedlist* function:假设该链表只给出了头指针head。在不改变链表的前提下,请设计一个尽可能高效的算法,*查找链表中倒数第k(k为正整数......
  • 删除链表中(有头节点)一个最小值节点
    删除链表中(有头节点)一个最小值节点/********************************************************************** name : deletelinkedlist* function:删除链表中(有头节点)一个最小值节点* argument:* @Head:链表结构体头头节点地址** retval :调用成功......
  • 链表的操作例题
    链表的删除操作题目:设计一个算法删除单链表L(有头结点)中的一个最小值结点。/********************************************name:DelNode*function:删除单链表L中的一个最小值结点*argument:@L:单链表L的地址*retval:None*date:2024/04/22*n......