首页 > 其他分享 >链表笔试题

链表笔试题

时间:2024-04-23 09:23:43浏览次数:23  
标签:head -- 笔试 链表 int 查找 节点

链表笔试题

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

要求:
(1)描述算法的基本设计思想.
(2)描述算法的详细实现步骤.
(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用 C 或 C语言实现),关键之处请给出简要注释.

/*******************************************************************
*
*	函数名称:	Find_LList
*	函数功能:   查找链表倒数第k节点的值
* 	函数参数:			
*  				@head :传递头节点的地址
				@k	  :接收要查找的节点位置
*   返回结果:   成功返回一,失败返回0.
* 	注意事项:   None
* 	函数作者:  liuliu @136.com
*	创建日期:   2024/04/23
*	修改历史:
*	函数版本:	V1.0
* *****************************************************************/
int Find_LList(Node_Type *head,int k)
{
	int cnt;//计数器,用来算出该链表有多少的节点
	Node_Type *current=head-->next;把首节点作为当前节点
	//如果链表为空,返回0
    if(head-->next)
    {
    	return 0;
    }
    //链表不为空,遍历计算出节点总数
	while(current)
	{
		cnt++;
		current=urrent-->next;
	}
	//遍历到需要查找的那个节点并打印该节点的数据域
	for(int i=0;i<=cnt-k;i++)
	{
		head=head-->next;
	}
	printf("%d",head-->data);
	return 1;
	
	
}

标签:head,--,笔试,链表,int,查找,节点
From: https://www.cnblogs.com/liuliuye/p/18152089

相关文章

  • 单向链表的插入删除和遍历
    /*********************************************************************************************************** FileName:LinkedList * Author:madman_LX*Contactme:[email protected]* Date :2024/04/22* Function:单向链表的遍历,插......
  • C语言单向链表的增删操作
    //指的是单向链表中的结点有效数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造链表的结点,链表中所有结点的数据类型应该是相同的typedefstructLinkedList{  DataType_tdata;    //结点的数据域  structLinkedList*next;......
  • 笔试题:查找链表中倒数第k(k为正整数)个位置上的结点
    数据结构链表笔试题:(1)算法的基本设计思想:定义两个结构体指针FPhead和SPhead,其中,FPhead需要从头遍历链表,当FPhead和SPhead之间的距离相差k-1,则调动SPhead开始遍历链表,从而确定倒数第k个位置上的结点。(2)算法的详细实现步骤:定义一个整型变量用来储存两个结构体指针FPhead和SP......
  • 数据结构链表笔试题
    数据结构链表笔试题笔试题3:设计一个算法删除单链表L(有头结点)中的一个最小值结点/********************************************************************* 函数名称: LList_Del* 函数功能:删除链表中最小值节点* 函数参数: * @L:传递头节点的地址*返回......
  • 倒数链表
    看了上面这个考研专题后,小白经过深思熟虑,可以备份俩个头结点,然后分别进行遍历,因为需要知道倒数第K个结点的地址,所以,当循环遍历时,俩个指针在遍历的时候需要间隔k-1次,所以代码如下:/********************************************************************* name : LinkedList_......
  • 笔试题
    笔试题己知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。intSeqList_Remove(*L,intp){ //判断顺序表的地址是否有效 if(NULL==L) { return0; } inte=0;//变量e,记录待删除元素......
  • 笔试题:设计一个算法删除单链表L(有头结点)中的一个最小值结点
    数据结构——笔试题设计一个算法删除单链表L(有头结点)中的一个最小值结点/*********************************************************funcname:DelMinNode*author:[email protected]*date:2024/04/22*function:删除单链表L(有头结点)中的一个最......
  • 顺序表和链表的练习题
    顺序表题目一:题目分析:该题目需要先对顺序表进行遍历至元素x正确插入位置,再对顺序表完成插入操作。因此涉及到for循环与if语句的使用代码实现/********************************************************************** name : SequenceList_insert* function:实现插......
  • 查找链表中倒数第k(k为正整数)个位置上的结点,查找成功输出该结点的data值,并返回1,否则只
    /********************************************************name:FindKNode* function:查找链表中倒数第k(k为正整数)个位置上的结点*查找成功输出该结点的data值,并返回1,否则只返回0*argument*@head:链表头结点的地......
  • 查找链表中倒数第k个值
    查找链表中倒数第k个值/********************************************************************** name : deletelinkedlist* function:假设该链表只给出了头指针head。在不改变链表的前提下,请设计一个尽可能高效的算法,*查找链表中倒数第k(k为正整数......