python单链表操作_单链表的创建、增删改查等操作(Python实现)
单链表的创建、增删改查等操作(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实现)相关推荐
- 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例
用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...
- django调用python脚本返回_Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境...
单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的settin ...
- python字典增删改查项目_字典的增删改查如何操作?
什么是字典? 字典是一种可变,无序,可迭代的储存形式 在字典中它们的储存是以键值对来存的! 也就是吧两个相关的值关联起来,通过我的键来查找我的值! 可以存储各种的数据类型 ! 字典的操作跟列表一样,分 ...
- python对sqlite增删改查_Python操作sqlite3数据库 增删改查
SQLite,是一款轻型的数据库,占用资源非常的低.这里记录下对sqlite3的增删改查相关操作,顺便复习一下SQL语句- -. 一.创建数据库 连接到一个现有的数据库.如果数据库不存在,那么它就会被 ...
- 动态网站作业4-JSP中实现数据库的增删改查的操作
动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...
- resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)
今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是 ...
- php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
本文实例讲述了PHP实现对xml进行简单的增删改查(CRUD)操作.分享给大家供大家参考,具体如下: 假如有下面xml文件: 55.8 56 40 339 如何使用php对它进行CRUD?其实像这种简 ...
最新文章
- 关于python的一些好的书籍推荐-如果只能推荐3本关于python的书,你会推荐哪3本?...
- 8 个你必须要掌握的 GitHub 实用技巧!
- [科技部与你共成长] 数组循环移位
- 关于C#中实现两个应用程序消息通讯的问题
- ssm使用全注解实现增删改查案例——mybatis-config.xml
- 让cocos2dx支持并通过arm64 编译
- STM32_Systick学习及例程改写
- 关于mongodb的可视化工具:nosql manager for mongodb
- Hive自定义函数UDF、UDAF、UDTF
- CleanCodeHandbook Chapter 9: Binary Search(48-50)
- matlab cy11,matlab解线性回归方程,y=a0+a1*A+a2*B+a3*C+a4*D+a5*E+a6*F; 数据足够,求a0,a
- Bailian4115 鸣人和佐助【BFS】
- xmanager 远程连接REDHAT 4 桌面
- html5毕业设计程序,网页毕业设计制作流程
- Windows操作系统----安全机制----Token
- linux下的文件系统,Linux系统中常见的文件系统有哪些?
- const T 与T const(const T vs.T const的翻译 Dan Saks)
- android多个module打包aar,android 多module打包aar
- Unity Failed to resolve project template:Failed to decompress
- 前端基础 CSS 第十一章 使用CSS样式表 特效属性部分 ----暑假学习第九天