【考研数据结构刷题】408【2009 年第 42题】

【问题描述】

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

【参考代码】

typedef struct LNode
{
	int data;
	struct LNode* link;
}LNode, * LinkList;
int find(LinkList &list, int k)
{
	int n;
	LinkList p, q;
	n = 0;
	p = list->link;
	q = list->link;
	while (p)
	{
		n++;
		if (n > k) q = q->link;
		p = p->link;
	}
	if (n >= k)
	{
		printf("%d", q->data);
		return 1;
	}
	if (n < k) return 0;
}

【代码解析】

此题针对考研数据结构,采用伪代码,主要理解代码逻辑。

此题算为简单题,为了保证时间复杂度尽量的小,可以定义一个倒数k位的指针。

有很多网站可以用来刷考研数据结构目。其中,一些常见的网站包括leetcode、牛客网和PAT网。这些网站提供了大量的数据结构相关目,可以帮助考研学生进行练习和提高。 在这些网站上,你可以找到各种类型的数据结构目,包括链表、树、图、排序等等。你可以根据自己的需要选择适合的目类型和难度级别来刷题刷题的目的可以有很多,比如为了备考考研的面试、为了参加程序设计竞赛、或者只是为了提高自己的算法能力。不同的目的可能需要选择不同的目类型和难度级别。因此,在选择目时,你可以根据自己的目标来进行筛选和练习。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [《数据结构知识点总结》计算机考研复试应届生求职刷题必备.pdf](https://download.csdn.net/download/liuning940307/31275197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [刷了几千道算法,这些我私藏的刷题网站都在这里了!](https://blog.csdn.net/u013486414/article/details/102961171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code丶Q

让我们共同进步!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值