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 相关文章推荐
在windows下快速搭建web.py开发框架方法
Apr 22 Python
对于Python中RawString的理解介绍
Jul 07 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 Python
python+mysql实现学生信息查询系统
Feb 21 Python
python实现随机漫步方法和原理
Jun 10 Python
Django ModelForm组件使用方法详解
Jul 23 Python
Python Collatz序列实现过程解析
Oct 12 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
Python实现我的世界小游戏源代码
Mar 02 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 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脚本
2006/11/26 PHP
php获取操作系统语言代码
2013/11/04 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
PHP Include文件实例讲解
2019/02/15 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
js null,undefined,字符串小结
2010/08/21 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
如何使用angularJs
2017/05/08 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
python测试驱动开发实例
2014/10/08 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python进程池Pool应用实例分析
2019/11/27 Python
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
高中生的学习总结自我鉴定
2013/10/26 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
项目采购员岗位职责
2014/04/15 职场文书
和睦家庭事迹
2014/05/14 职场文书
商场消防安全责任书
2014/07/29 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
雷锋电影观后感
2015/06/10 职场文书
田径运动会通讯稿
2015/07/18 职场文书
使用pytorch实现线性回归
2021/04/11 Python
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android