Python单链表的简单实现方法


Posted in Python onSeptember 23, 2014

本文实例讲述了Python单链表的简单实现方法,分享给大家供大家参考。具体方法如下:

通常来说,要定义一个单链表,首先定义链表元素:Element.它包含3个字段:

list:标识自己属于哪一个list
datum:改元素的value
next:下一个节点的位置

具体实现代码如下:

class LinkedList(object):
  
  class Element(object):
    
    def __init__(self,list,datum,next): 
      self._list = list
      self._datum = datum 
      self._next = next

    def getDatum(self): 
      return self._datum

    datum = property(
      fget = lambda self: self.getDatum())

    def getNext(self):
      return self._next

    next = property(
      fget = lambda self: self.getNext())

  def __init__(self):

    self._head = None
    self._tail = None
  def getHead(self):
    return self._head 
  head = property(
    fget = lambda self: self.getHead()) 
  def prepend(self,item):
    tmp = self.Element (self,item,self._head)
    if self._head is None:
      self._tail = tmp 
    self._head = tmp 

  def insert(self, pos, item):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > pos-1:
      return -1
    tmp = self.Element(self, item, p._next)
    p._next = tmp
    return 1
  def getItem(self, pos):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > post-1:
      return -1
    return p._datum
  def delete(self, pos):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > post-1:
      return -1
    q = p._next
    p._nex = q._next
    datum = p._datum
    return datum
  def setItem(self, pos, item):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > post-1:
      return -1
    p._datum = item
    return 1
  def find(self, pos, item):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      if p._datum == item:
        return 1
      p = p._next
      i += 1
    return -1
  def empty(self):
    if self._head == None:
      return 1
    return 0
  def size(self):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    return i

  def clear(self):
    self._head = None
    self._tail = None

test = LinkedList()
test.prepend('test0')
print test.insert(1, 'test')
print test.head.datum
print test.head.next.datum

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python实现挑选出来100以内的质数
Mar 24 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
Python生成器以及应用实例解析
Feb 08 Python
深入浅析Python传值与传址
Jul 10 Python
对Python信号处理模块signal详解
Jan 09 Python
python 多个参数不为空校验方法
Feb 14 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
Django实现图片上传功能步骤解析
Apr 22 Python
Python基于pip实现离线打包过程详解
May 15 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python sublime安装及配置过程详解
Jun 29 Python
python如何使用代码运行助手
Jul 03 Python
Python中bisect的用法
Sep 23 #Python
python元组操作实例解析
Sep 23 #Python
Python中实现两个字典(dict)合并的方法
Sep 23 #Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 #Python
Python中的类学习笔记
Sep 23 #Python
Python函数嵌套实例
Sep 23 #Python
Python中的自定义函数学习笔记
Sep 23 #Python
You might like
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
深入研究React中setState源码
2017/11/17 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
启动Atom并运行python文件的步骤
2018/11/09 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python 两个数据库postgresql对比
2019/10/21 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
大学自我鉴定
2013/12/20 职场文书
全陪导游欢迎词
2014/01/17 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
python基础之错误和异常处理
2021/10/24 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis