鱼C论坛

 找回密码
 立即注册
查看: 2046|回复: 8

有没有做阅读程序填空的好方法?

[复制链接]
发表于 2023-9-10 14:45:40 | 显示全部楼层
题目描述:

对于一个 1 到 n 的排列 P(即 1 到 n 中每一个数在 P 中出现了恰好一次),令 q 为第 i 个位置之后第一个比 P 值更大的位置,如果不存在这样的位置,则 q = n + 1。举例来说,如果 n = 5 且 P 为 1 5 4 2 3 ,则 q 为2 6 6 5 6。

下列程序读入了排列 P ,使用双向链表求解了答案。试补全程序。

题目分析:

这道题目是一道模拟题,主要考察对双向链表的掌握以及对指针的运用。

思路:

1. 首先读入排列 P,将每个数存入数组 a 中,同时将每个数的左右指针初始化为 0。

2. 初始化每个数的右指针 R[ i] 为 i+1,左指针 L[ i] 为 i-1。

3. 对于每个数 a[ i],将它的左指针的右指针指向它的右指针,右指针的左指针指向它的左指针。

4. 最后输出每个数的答案即可。

代码如下:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-25 03:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表