当前位置: 首页 > wzjs >正文

网站备案 暂住证网站功能

网站备案 暂住证,网站功能,大气的化妆品网站名,动态页面怎么做从单链表 list 中删除第 i 个元素 一、问题引入二、解题步骤1.思维导图2.解题步骤 三、代码实现四、个人总结 一、问题引入 请编写程序,将 n 个整数顺次插入一个初始为空的单链表的表头。随后对任意给定的位序 i,删除链表中第 i 个结点。注意&#xff1…

从单链表 list 中删除第 i 个元素

  • 一、问题引入
  • 二、解题步骤
    • 1.思维导图
    • 2.解题步骤
  • 三、代码实现
  • 四、个人总结

一、问题引入

请编写程序,将 n 个整数顺次插入一个初始为空的单链表的表头。随后对任意给定的位序 i,删除链表中第 i 个结点。注意:i 代表位序,从 1 开始。删除结束后,输出链表长度,并顺序输出链表中的每个结点的数值。

输入格式:
输入首先在第一行给出正整数 n(≤10^4);随后一行给出 n 个 int 范围内的整数,数字间以空格分隔;最后一行给出删除位序 i,为 int 范围内的整数。

输出格式:
如果删除的位置不合法,则不能删除,在一行中输出句子 错误:删除位置不合法。。无论是否删除成功,都按照题面描述的要求,在一行中输出链表信息,格式为:

表长: x1 x2 … xn

注意数字间有 1 个空格分隔,行首尾无多余空格。

输入样例 :

5
1 2 3 4 5
3

输出样例:

4: 5 4 2 1

二、解题步骤

1.思维导图

在这里插入图片描述

2.解题步骤

步骤1:创建链表

  1. 初始化一个空链表(使用头结点)
  2. 读取n个整数
  3. 将每个整数插入到链表头部(头插法)

步骤2:删除指定位置节点

  1. 检查删除位置i是否合法(1 ≤ i ≤ 链表长度)
  2. 从头结点开始遍历,找到第i-1个节点
  3. 将第i-1个节点的next指向第i+1个节点
  4. 释放第i个节点的内存

步骤3:输出结果

  1. 根据删除是否成功,计算并输出链表长度
  2. 遍历链表,输出所有节点的值

三、代码实现

class LNode:def __init__(self, data=None):self.data = dataself.next = Noneclass LinkList:def __init__(self):self.head = LNode()  # 头结点def create_list(self, n):"""创建链表"""for _ in range(n):num = int(input())new_node = LNode(num)new_node.next = self.head.nextself.head.next = new_nodedef delete_node(self, i):"""删除链表中第 i 个结点"""if i < 1:return Falsep = self.headj = 1while p and j < i:p = p.nextj += 1if not p or not p.next:return Falsetemp = p.nextp.next = temp.nextdel tempreturn Truedef print_list(self):"""打印链表"""p = self.head.nextwhile p:print(f" {p.data}", end="")p = p.nextprint()def main():# 输入链表长度n = int(input())# 创建链表link_list = LinkList()link_list.create_list(n)# 输入删除位置i = int(input())# 删除结点if link_list.delete_node(i):print(f"{n - 1}:", end="")else:print("错误:删除位置不合法。")print(f"{n}:", end="")# 打印链表link_list.print_list()# 调用主函数
if __name__ == "__main__":main()

四、个人总结

通过本次单链表删除元素的实验,我深入理解了链表数据结构的基本原理和操作方法。在实验过程中,我掌握了头插法创建链表的技巧,认识到这种插入方式能够实现O(1)时间复杂度的插入操作,但会使元素顺序与输入顺序相反。在删除指定位置节点时,我学会了如何通过遍历找到目标节点的前驱节点,这是链表操作中的关键技巧。

实验中遇到的难点主要是边界条件的处理。当删除位置不合法时,需要给出明确的错误提示,这让我意识到健壮的程序必须考虑所有可能的异常情况。通过调试,我发现链表操作中特别需要注意指针的移动和空指针的判断,稍有不慎就会导致程序崩溃或内存泄漏。

这次实践还让我体会到链表与数组的显著差异。链表不需要预先分配连续内存空间,插入删除效率高,但随机访问效率低。在输出结果时,我注意到链表的遍历输出需要特别注意格式控制。通过实验,我不但巩固了理论知识,还提升了实际编程能力。特别是在指针操作和内存管理方面有了更深刻的认识。


文章转载自:

http://zpbMPZX9.zLgth.cn
http://dD6CvD2g.zLgth.cn
http://jAgKMWTp.zLgth.cn
http://t4paZtfw.zLgth.cn
http://EDuNf4GH.zLgth.cn
http://20TAHEd0.zLgth.cn
http://WJutUzRy.zLgth.cn
http://Mtc4ADpA.zLgth.cn
http://Xd97S9XC.zLgth.cn
http://FoFMg9lS.zLgth.cn
http://W4uLKrbM.zLgth.cn
http://rYp1t9OY.zLgth.cn
http://NONekAKY.zLgth.cn
http://J5ss1ZOW.zLgth.cn
http://eURl1Hnq.zLgth.cn
http://PEY4OMJx.zLgth.cn
http://gZmSy0gB.zLgth.cn
http://lhOJecLS.zLgth.cn
http://GTTtec7Y.zLgth.cn
http://oPmJcA0E.zLgth.cn
http://B7dbEcDI.zLgth.cn
http://b9XEx0FG.zLgth.cn
http://pvLuGkhL.zLgth.cn
http://tg2QInDL.zLgth.cn
http://qkbDx0e1.zLgth.cn
http://APayu33B.zLgth.cn
http://pl6yRMc3.zLgth.cn
http://pNzrc9Nx.zLgth.cn
http://8jppg3cx.zLgth.cn
http://FdDY3g0p.zLgth.cn
http://www.dtcms.com/wzjs/764372.html

相关文章:

  • 学校网站开发工程师数据科学与大数据技术
  • 遂昌建设局网站wordpress调用相关评论
  • 合肥网站开发招聘ui培训班哪家好
  • 南宁电子推广网站网站续费公司
  • 自己编写代码建设微网站天津网站排名提升
  • 四川城乡建设部网站域名邮箱申请
  • 青岛哪里做网站大气家具行业商城类公司网站织梦模板
  • 成都网站营销推广公司江门网站推广多少钱
  • 网站基本参数设置模块建设银行郑州中心支行网站
  • 制作网站项目流程电子元器件商城网站建设
  • 网站开发一个支付功能要好多钱国外还有那种做电商的网站
  • 营销型企业网站建站网站界面设计案例教程
  • 网站友链怎么添加事业单位建立网站
  • 中铁三局招聘学历要求石家庄网站排名优化
  • wordpress网站插件下载失败微信小程序推广佣金
  • wordpress网站seo旅游网站优化方案
  • 网站开发常用图标dremrever做网站流程
  • 亚马逊德国做deals 网站计算机平面设计主要学什么
  • 乐山企业网站建设网站建设先进个人
  • 锦江网站建设网站建设规划
  • 自己如何做网站统计如何用易语言做网站
  • 网站源码 正在建设中制作公司网站设计要求
  • 海口制作手机网站wordpress恢复主题
  • 做网站需要源码吗网站制作方案包含哪些内容
  • 网站seo课程杭州工程建设网
  • 网站维护案商城网站开发报
  • 电脑培训班在哪里报名百度seo培训要多少钱
  • html是建网站导航栏怎么做网站怎么做网页
  • 兰州网站推广建设公司上海app开发和制作公司
  • 网站关键词优化代码北京cos网站