单链表的创建、增删改查等操作(Python实现)

# 单链表

class Node:

def __init__(self, elem):

self.elem = elem

self.next = None

class SingleLinkedList:

def __init__(self, length):

self.head = Node(length)

self.end = self.head

def length(self):

# 求链表长度

cur = self.head

count = 0

while cur.next :

count += 1

cur = cur.next

return count

def isempty(self):

# 判断链表是否为空

return self.head.next == None

def add(self, elem):

# 头插法

node = Node(elem)

node.next = self.head.next

self.head.next = node

def append(self, elem):

# 尾插法

node = Node(elem)

node.next = None

self.end.next = node

self.end = node

def insert(self, loc, elem):

# 向链表第loc位置插入 数据域 为elem的结点

cur = self.head

count = 0

while cur and count

cur = cur.next

count += 1

if not cur or count>loc-1:

print("插入失败")

return

node = Node(elem)

node.next = cur.next

cur.next = node

def remove(self, loc):

# 删除链表第loc位置结点

cur = self.head

count = 0

while cur.next and count

cur = cur.next

count += 1

if not cur.next or count>loc-1:

print("删除操作不合法")

return

cur.next = cur.next.next

def travel(self):

# 遍历链表

cur = self.head

while cur.next:

cur = cur.next

print(cur.elem)

if self.isempty():

print("该链表为空")

def getelem(self, loc):

# 获取第loc位置的结点的数据域

cur = self.head.next

count = 1

while cur and count

cur = cur.next

count += 1

if not cur or count>loc :

print("不存在")

return

print(cur.elem)

def search(self, elem):

# 查询链表中 数据域 为elem的结点 第一次出现的位置

cur = self.head.next

while cur and cur.elem!=elem:

cur = cur.next

if cur and cur.elem==elem:

print(cur)

return

print("不存在")

pass

def main():

length = 0

sll = SingleLinkedList(length)

print(sll.isempty())

print(sll.length())

sll.append(1)

sll.append(2)

sll.append(3)

sll.append(4)

sll.append(5)

print(sll.length())

sll.travel()

main()

点赞

收藏

分享

文章举报

Yes ,I can !

发布了16 篇原创文章 · 获赞 1 · 访问量 367

私信

关注

python单链表操作_单链表的创建、增删改查等操作(Python实现)相关推荐

  1. 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例

    用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...

  2. django调用python脚本返回_Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境...

    单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的settin ...

  3. python字典增删改查项目_字典的增删改查如何操作?

    什么是字典? 字典是一种可变,无序,可迭代的储存形式 在字典中它们的储存是以键值对来存的! 也就是吧两个相关的值关联起来,通过我的键来查找我的值! 可以存储各种的数据类型 ! 字典的操作跟列表一样,分 ...

  4. python对sqlite增删改查_Python操作sqlite3数据库 增删改查

    SQLite,是一款轻型的数据库,占用资源非常的低.这里记录下对sqlite3的增删改查相关操作,顺便复习一下SQL语句- -. 一.创建数据库 连接到一个现有的数据库.如果数据库不存在,那么它就会被 ...

  5. 动态网站作业4-JSP中实现数据库的增删改查的操作

    动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...

  6. resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...

  7. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

    今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...

  9. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例

    本文实例讲述了PHP实现对xml进行简单的增删改查(CRUD)操作.分享给大家供大家参考,具体如下: 假如有下面xml文件: 55.8 56 40 339 如何使用php对它进行CRUD?其实像这种简 ...

最新文章

  1. 关于python的一些好的书籍推荐-如果只能推荐3本关于python的书,你会推荐哪3本?...
  2. 8 个你必须要掌握的 GitHub 实用技巧!
  3. [科技部与你共成长] 数组循环移位
  4. 关于C#中实现两个应用程序消息通讯的问题
  5. ssm使用全注解实现增删改查案例——mybatis-config.xml
  6. 让cocos2dx支持并通过arm64 编译
  7. STM32_Systick学习及例程改写
  8. 关于mongodb的可视化工具:nosql manager for mongodb
  9. Hive自定义函数UDF、UDAF、UDTF
  10. CleanCodeHandbook Chapter 9: Binary Search(48-50)
  11. matlab cy11,matlab解线性回归方程,y=a0+a1*A+a2*B+a3*C+a4*D+a5*E+a6*F; 数据足够,求a0,a
  12. Bailian4115 鸣人和佐助【BFS】
  13. xmanager 远程连接REDHAT 4 桌面
  14. html5毕业设计程序,网页毕业设计制作流程
  15. Windows操作系统----安全机制----Token
  16. linux下的文件系统,Linux系统中常见的文件系统有哪些?
  17. const T 与T const(const T vs.T const的翻译 Dan Saks)
  18. android多个module打包aar,android 多module打包aar
  19. Unity Failed to resolve project template:Failed to decompress
  20. 前端基础 CSS 第十一章 使用CSS样式表 特效属性部分 ----暑假学习第九天

热门文章

  1. leetcode 遇到的问题
  2. Python 使用@property对属性进行数据规范性校验
  3. HBase timestamp(version)
  4. 限流算法——漏桶算法和令牌桶算法介绍
  5. Scala模式匹配:for循环表达式中的模式匹配
  6. Python3 绘制同心圆代码示例
  7. eureka源码:开启服务注册
  8. Spring AOP编程-传统基于aspectJ切点AOP开发
  9. double处理arithmeticexception为什么不报错_为什么工业废气处理设备的价格不一样?...
  10. linux环境下中文乱码问题