前言

  • 文章来源:CSDN@LawsonAbs
  • 使用python定义一个单链表

链表是面试考察的一个重要部分,下面就介绍如何使用python定义一个单链表。

1. 定义一个节点类

class Node:def __init__(self,data):self.data = data # 数据self.next = None # 下一个节点return # 用于查找链表中是否存在这个数值def has_value(self,value):if self.data == value:return Trueelse:return False

2. 新建一个单链表的类

class SingleLink():def __init__(self):self.head = None # head 与 tail 都是Node类型的节点self.tail = Noneself.length = 0return# 链表是否为空def is_empty(self):return self.length == 0def add_node(self,item):if not isinstance(item,Node): # 如果不是Node型对象,那么就直接实例化一下item = Node(item)if self.head is None: # 如果当前这个链表没有头,那么设置为头self.head  = itemself.tail = item; #头尾都是这个else: self.tail.next = itemself.tail = item # 始终记录tail self.length += 1return def insert_node(self,index,data):if self.isempty():print("this link is empty")return if index < 0 or index >= self.length:print("error:out of index")return item = Node(data)if index == 0:item.next = self.headself.head  = itemself.length += 1return j = 0   node = self.headprev = self.headwhile node.next and j < index:prev = nodenode = node.nextj+=1if j==index:item._next = nodeprev._next = itemself.length += 1def print_link(self):current_node = self.headwhile current_node is not None:print(current_node.data,end=' ')current_node = current_node.nextreturn
# 定义几个实例
n1 = Node(1)
n2 = Node(2)
n3 = Node(3)
n4 = Node(4)# 定义一个单链表
link = singlelink()# 将得到的实例放到链表中,链表中存储的是节点
for node in [n1,n2,n3,n4]:link.add_node(node)
# 调用链表的方法输出其中的值
link.print_link()

使用python定义单链表相关推荐

  1. python实现单链表快速排序升序linkedqueue_同时对多个数组进行排序

    关于 同时对多个数组进行排序的搜索结果 回答 本人学习数据结构时看到的不错的总结,共享一下了 文件有一组记录组成,记录有若干数据项组成,唯一标识记录的数据项称关键字; 排序是将文件按关键字的递增(减) ...

  2. python实现单链表与双向链表

    首先看单链表class Chain(): def __init__(self):self.first = Noneself.length = 0def is_empty(self):"&qu ...

  3. python实现单链表快速排序升序linkedqueue_LeetCode 总结 - 搞定 Linked List 面试题

    链表删除 [203] Remove Linked List Elements [19] Remove Nth Node From End of List [83] Remove Duplicates ...

  4. python实现单链表快速排序升序linkedqueue_数据结构回顾

    顺序结构 顺序栈(Sequence Stack) 1 2 3 4 5 6typedef struct { ElemType *elem; int top; int size; int incremen ...

  5. Python的单链表实现

    一.单向链表实现 在单向链表结构中,每个节点包含两部分,元素部分和指针部分,其中元素部分即为节点的值,指针部分指向下一个节点或者None,另外,为了找到第一个节点,需要定义一个头结点head,它只含有 ...

  6. python反转单链表

    原始单链表 反转后单链表 思路: 对于每个节点来说,把她的下一个节点,改为他的上一个节点,然后把下一个节点继续变换 建两个临时变量,上一个节点pred,下一个节点next,初始化为None 第1步,开 ...

  7. 数据结构与算法-python描述-单链表

    # coding:utf-8# 单链表的相关操作: # is_empty() 链表是否为空 # length() 链表长度 # travel() 遍历整个链表 # add(item) 链表头部添加元素 ...

  8. python实现单链表快速排序升序linkedqueue_数据结构1

    一. ( (本题 15 分)试设计一个结点数据类型为整型的带表头结点的有序单 链表,然后设计一个算法,该算法将这个有序单链表划分成两个单链表,使 得第一个单链表中包含原单链表中所有数值为奇数的结点, ...

  9. python求单链表的长度_709. 设计链表(Python)

    题目 难度:★★☆☆☆ 类型:链表,设计题 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针 ...

最新文章

  1. LINQ to SQL 之DataContext用法
  2. 【知识图谱】知识抽取与挖掘(I)
  3. oracle dbms_profiler,Oracle数据库中使用DBMS_PROFILER进行调优
  4. 平板电脑办公软件_大屏平板互动软件-平板电脑触摸大屏控制软件
  5. java集合——集合与数组间的转换+算法
  6. 春节档影片的成本各是多少?
  7. XP搭建winwebmail具体步骤
  8. Ubuntu21.04 安装 VLC视频播放器
  9. python爬取网易云歌词
  10. p104规约测试软件,基于IEC60870-5-104规约的智能配电网终端设备测试方案及软件设计...
  11. seo优化之什么是死链接、导入链接、导出链接
  12. 计算机网络期中考试总结反思,期中考试总结与反思范文
  13. centOS安装openoffice4.1.6 并解决字体乱码
  14. 数据结构铁轨问题_数据结构大作业(试题题目)
  15. .net core Fleck WebSocket使用笔记
  16. Spring MVC各组件近距离接触--下下--05
  17. 怎么解决word中英文混合换行后字体间隔变大问题
  18. Android中的EditText属性说明
  19. matlab轴向柱塞泵动力学仿真,斜盘式轴向柱塞泵柱塞副油膜特性研究
  20. python学习 第一模块习题总结

热门文章

  1. Linkflow+抖音:自动化运营抖音用户,提升用户粘性促进转化
  2. Windows10下的超详细Java安装步骤
  3. Propagation事务传播行为
  4. turtle库的介绍
  5. 概率论与数理统计(2.5)随机变量的函数的分布
  6. 遭遇Trojan-Spy.Win32.Delf.uv,Trojan.PSW.Win32.XYOnline,Trojan.PSW.Win32.ZhengTu等2
  7. YOLOv7:无需预训练模型的最新最实时的目标检测框架
  8. ABP入门教程(五)集成Dapper
  9. 什么是全局变量,局部变量,静态全局变量,静态局部变量
  10. redis主从同步策略