python单链表的基本操作思路
单链表:
1、定义链表
class ListNode: # 定义节点
def __init__(self, x):
self.val = x # 节点当前值
self.next = None # 指向的下一节点,None表示没有下一节点
2、插入数据
# 单链表的插入(在第 s 个结点后面插入 data)
def InsertList(self,s,data):
if self.IsEmpty() or s < 0 or s > self.LengthList():
print("Insert failed!")
return
p = self.head
index = 1
while index < s: # 循环逐个遍历到所需插入的位置
p = p.next # 更新指针节点,p.next表示下一节点
index += 1 # 最后在p为s节点处退出循环,退出时p是s节点 node = Node(data) # 新建节点
node.next = p.next # 设置下一节点,为:原s节点的下一节点
p.next = node # s节点现在的下一节点,为:新节点
3、删除数据
# 单链表的删除(删除第 s 个结点)
def DeleteList(self, s):
if self.IsEmpty() or s < 0 or s > self.LengthList():
print("Delete failed! ")
return
p = self.head
index = 1
while index < s:
pre = p # 备份上一节点
index += 1
p = p.next # 当前所需删除的节点s
pre.next = p.next # 将上一节点,指向s的下一节点
p = None # 将s节点设置为空,或者删除
python单链表的基本操作思路的更多相关文章
- 用最简单的方式学Python单链表
Python 实现单链表 在本博客中,我们介绍单链表这种数据结构,链表结构为基于数组的序列提供了另一种选择(例如Python列表). 基于数组的序列和链表都能够对其中的元素保持一定得顺序,但采用的方式 ...
- python单链表
#!/usr/bin/env python3 # -*- coding:utf-8 -*- class LNode: """ 结点类 """ ...
- Python单链表实现
class Node(): def __init__(self,InitDate): self.Date=InitDate self.next=None def setNext(self,newnex ...
- 数据结构:单链表结构字符串(python版)添加了三个新功能
#!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ...
- 数据结构:单链表结构字符串(python版)改进
此篇文章的replace实现了字符串类的多次匹配,但依然有些不足. 因为python字符串对象为不变对象,所以replace方法并不修改原先的字符串,而是返回修改后的字符串. 而此字符串对象时用单链表 ...
- 数据结构:单链表结构字符串(python版)
#!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ...
- Python 之简易单链表
单链表的基本要素有 2 个,数据项和连接项.这两项在 Python 中可以通过对象及其属性来实现. class Node: def __init__ (self, data): self.data = ...
- python 数据结构之单链表的实现
链表的定义: 链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址.由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就 ...
- python实现数据结构单链表
#python实现数据结构单链表 # -*- coding: utf-8 -*- class Node(object): """节点""" ...
随机推荐
- 2-10 就业课(2.0)-oozie:7、job任务的串联
4.4.oozie的任务串联 在实际工作当中,肯定会存在多个任务需要执行,并且存在上一个任务的输出结果作为下一个任务的输入数据这样的情况,所以我们需要在workflow.xml配置文件当中配置多个ac ...
- Oralce给字段追加字符,以及oracle 给字段替换字符
追加字符 update table_name t set t.DIST_NAME = t.DIST_NAME || '市' where PROD_NAME='爱立信' table_name :表名 ...
- 022、Java中boolean的用法
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 7.8 Varnish 其他命令
- iPad适配tabBarController
iPad的tabBarController会在底部居中显示,根据不同的需求可能需要把tabBarItem均匀分布显示,具体修改如下 self.tabBar.itemPositioning = UITa ...
- Spring AOP 管理事务
<aop:config proxy-target-class="true"> <aop:pointcut expression="execution(* ...
- 在 linux 中遇到 OSError: inotify watch limit reached 错误
检查系统当前限制,默认应该是 8192: cat /proc/sys/fs/inotify/max_user_watches 可根据需要调整系统限制,但是目前还不知道如何查看每个进程对 watch 的 ...
- Docker入门以及漏洞环境搭建(10.23 第二十五天)
Docker:开源的应用程序容器引擎,使用Go语言.借助于docker打包的应用程序,将这些应用程序 包含在容器里面,在容器中实现虚拟化,容器使用的是沙箱机制,相互独立,占用资源非常少. Docker ...
- yum对于包和软件的安装、升级和卸载总结
在Centos下yum的安装.升级和卸载 一.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的.安装的命令是,yum install ~,yum会查询数据库,有无这一软件包,如果 ...
- ubuntu下pip的安装、升级和使用
系统虽然自带了不同版本的python,但都没有安装pip,pyhton2.7下使用的是pip2,python3.5下使用的是pip3.下面是各自安装命令. 安装 pip2: sudo apt-get ...