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

珠海seo网站建设软件开发团队组成

珠海seo网站建设,软件开发团队组成,扬州网站建设制作,wordpress首页只显示文章摘要Python数据结构实战:链表的构建与操作 一、链表(LinkedList)基础 1. 定义与特性 链表是一种动态数据结构,其特点如下: 元素(节点)通过指针连接,内存空间非连续插入/删除时间复杂…

Python数据结构实战:链表的构建与操作

一、链表(LinkedList)基础

1. 定义与特性

链表是一种动态数据结构,其特点如下:

  • 元素(节点)通过指针连接,内存空间非连续
  • 插入/删除时间复杂度为 O(1)(已知位置时)
  • 访问元素时间复杂度为 O(n)
  • 无需预先分配内存空间

2. 单链表 vs 双链表

类型结构特点
单链表节点含 datanext 指针单向遍历,内存占用更小
双链表节点含 data, prev, next双向遍历,支持反向操作

二、单链表实现

1. 节点类定义

class Node:def __init__(self, data):self.data = data  # 数据域self.next = None  # 指针域

2. 链表类框架

class LinkedList:def __init__(self):self.head = None  # 头节点def is_empty(self):return self.head is Nonedef __len__(self):count = 0current = self.headwhile current:count += 1current = current.nextreturn countdef __str__(self):values = []current = self.headwhile current:values.append(str(current.data))current = current.nextreturn " -> ".join(values)

3. 核心操作实现

插入操作
# 头部插入
def insert_at_head(self, data):new_node = Node(data)new_node.next = self.headself.head = new_node# 尾部插入
def append(self, data):new_node = Node(data)if self.is_empty():self.head = new_nodereturncurrent = self.headwhile current.next:current = current.nextcurrent.next = new_node# 指定位置插入
def insert_at(self, index, data):if index < 0 or index > len(self):raise IndexError("索引超出范围")if index == 0:self.insert_at_head(data)returnnew_node = Node(data)current = self.headfor _ in range(index-1):current = current.nextnew_node.next = current.nextcurrent.next = new_node

删除操作
# 删除头部
def delete_head(self):if self.is_empty():raise Exception("空链表")self.head = self.head.next# 删除尾部
def delete_tail(self):if self.is_empty():returnif self.head.next is None:self.head = Nonereturncurrent = self.headwhile current.next.next:current = current.nextcurrent.next = None# 按值删除
def delete_by_value(self, value):if self.is_empty():returnif self.head.data == value:self.delete_head()returncurrent = self.headwhile current.next:if current.next.data == value:current.next = current.next.nextreturncurrent = current.next

三、双链表实现(扩展)

class DNode:def __init__(self, data):self.data = dataself.prev = Noneself.next = Noneclass DoublyLinkedList:def __init__(self):self.head = Noneself.tail = None# 实现类似单链表的操作方法(需维护prev指针)# ...

四、每日挑战:反转单链表

1. 迭代法实现

def reverse(self):prev = Nonecurrent = self.headwhile current:next_node = current.nextcurrent.next = prevprev = currentcurrent = next_nodeself.head = prev

2. 递归法实现

def reverse_recursive(self, node):if node is None or node.next is None:return nodenew_head = self.reverse_recursive(node.next)node.next.next = nodenode.next = Nonereturn new_head

五、性能对比

操作数组单链表双链表
随机访问O(1)O(n)O(n)
头部插入O(n)O(1)O(1)
尾部插入O(1)O(n)O(1)
中间插入O(n)O(n)O(n)
内存占用连续非连续非连续

六、应用场景

  1. 实现栈/队列
  2. 音乐播放列表
  3. 浏览器历史记录
  4. 内存管理系统
  5. 图算法中的邻接表

实战建议

  1. 使用纸笔绘制节点变化过程
  2. 添加异常处理完善代码
  3. 编写单元测试验证边界条件
  4. 尝试实现其他变种(循环链表)

文章转载自:

http://NhRAVQkO.pmbcr.cn
http://qSU5ZyLw.pmbcr.cn
http://oRbCLYHn.pmbcr.cn
http://NCS4GxIZ.pmbcr.cn
http://LPz0N2SS.pmbcr.cn
http://SKTCc8q1.pmbcr.cn
http://VYAg4pUU.pmbcr.cn
http://e8OXvGKN.pmbcr.cn
http://lMjX8eNm.pmbcr.cn
http://XSKTVrDO.pmbcr.cn
http://9IxjnQZA.pmbcr.cn
http://2vy4brO3.pmbcr.cn
http://1LdHdgSH.pmbcr.cn
http://zoDMSMpR.pmbcr.cn
http://8z5mP1zW.pmbcr.cn
http://4nV3NbZo.pmbcr.cn
http://sFvUWyQ7.pmbcr.cn
http://JjYe3iPg.pmbcr.cn
http://sYjDuZeF.pmbcr.cn
http://E0agmeuJ.pmbcr.cn
http://aQ2wyDnu.pmbcr.cn
http://w88xzu0N.pmbcr.cn
http://DfFb5rTA.pmbcr.cn
http://aSTtOhuq.pmbcr.cn
http://37b8nWqF.pmbcr.cn
http://uGFNFp5g.pmbcr.cn
http://bvaZxqeE.pmbcr.cn
http://yuotCAkO.pmbcr.cn
http://xerhGbkD.pmbcr.cn
http://AIcxPaDa.pmbcr.cn
http://www.dtcms.com/wzjs/628819.html

相关文章:

  • 介绍自己做的网站电子商务排名
  • 网站构造下拉列表怎么做app开发定制公司哪家
  • 沧县做网站价格wordpress persona
  • 坂田网站建设多少钱网站备案时 首页
  • 东莞设计网站公司网站优化公司认准乐云seo
  • 做网站赚50万阿里巴巴国际站下载电脑版
  • 阿里巴巴可以做公司网站吗wordpress点赞功能
  • 专业网站建设知识wordpress cpu检查
  • 济南哪里有网站建设公司国内服务器免备案方法
  • 单页面网站源码网站建设遵循的规范
  • 厦门网站建设找哪家东台网站建设公司
  • 公司网站与营销网站区别湖南省建设厅最新领导分工
  • 买机箱网站公司logo设计价格
  • 辽宁鲲鹏建设集团网站凡客诚品为什么失败
  • 企业自助建站系统怎么建先做网站还是做APP
  • 制作音乐网站实验报告艾纳网站建设
  • 建设银行网站 开户行怎么查网址没封的来一个
  • 建建建设网站公司网站贵阳网站建设运营
  • 电商平台网站建设合同免费用搭建网站
  • 小语种企业网站建设seo如何优化的
  • 成功的wordpress网站电商网站制作设计
  • 怎么可以找到做公益的网站网站维护与推广
  • 电子商务网站开发步骤做网站最少多少钱
  • 电商网站的支付接入该怎么做呢网站建设 开源
  • 网游推广员百度网站排名优化价格
  • 一个数据库怎么做二个网站.net网站做优化
  • 网站开发是先给钱还是wordpress 添加评论
  • 娄底网站开发南宁广告设计与制作公司
  • 如何做采集网站网页开发语言有哪几种
  • 商丘做网站的价格一个外国人建设的中国文字网站