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批量修改文件名的实现代码
Sep 01 Python
进一步了解Python中的XML 工具
Apr 13 Python
Python语法快速入门指南
Oct 12 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
Python yield 使用方法浅析
May 20 Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 Python
python库matplotlib绘制坐标图
Oct 18 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
python 制作网站筛选工具(附源码)
Jan 21 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网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
原生js封装添加class,删除class的实例
2017/11/06 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
python合并文本文件示例
2014/02/07 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
高中综合实践活动总结
2014/07/07 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
python中的getter与setter你了解吗
2022/03/24 Python