Python单链表简单实现代码


Posted in Python onApril 27, 2016

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

用Python模拟一下单链表,比较简单,初学者可以参考参考

#coding:utf-8
class Node(object):
  def __init__(self, data):
    self.data = data
    self.next = None
class NodeList(object):
  def __init__(self, node):
    self.head = node
    self.head.next = None
    self.end = self.head
  def add_node(self, node):
    self.end.next = node
    self.end = self.end.next
  def length(self):
    node = self.head
    count = 1
    while node.next is not None:
      count += 1
      node = node.next
    return count
  # delete node and return it's value
  def delete_node(self, index):
    if index+1 > self.length():
      raise IndexError('index out of bounds')
    i = 0
    node = self.head
    while True:
      if i==index-1:
        break
      node = node.next
      i += 1
    tmp_node = node.next
    node.next = node.next.next
    return tmp_node.data
  def show(self):
    node = self.head
    node_str = ''
    while node is not None:
      if node.next is not None:
        node_str += str(node.data) + '->'
      else:
        node_str += str(node.data)
      node = node.next
    print node_str
  # Modify the original position value and return the old value
  def change(self, index, data):
    if index+1 > self.length():
      raise IndexError('index out of bounds')
    i = 0
    node = self.head
    while True:
      if i == index:
        break
      node = node.next
      i += 1
    tmp_data = node.data
    node.data = data
    return tmp_data
  # To find the location of index value
  def find(self, index):
    if index+1 > self.length():
      raise IndexError('index out of bounds')
    i = 0
    node = self.head
    while True:
      if i == index:
        break
      node = node.next
      i += 1
    return node.data
#test case
n1 = Node(0)
n2 = Node(1)
n3 = Node(2)
n4 = Node(3)
n5 = Node(4)
node_list = NodeList(n1)
node_list.add_node(n2)
node_list.add_node(n3)
node_list.add_node(n4)
node_list.add_node(n5)
#node = node_list.delete_node(3)
#print node
#d = node_list.change(0,88)
data = node_list.find(5)
print data
node_list.show()

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

Python 相关文章推荐
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
Python多继承顺序实例分析
May 26 Python
Python3.5文件修改操作实例分析
May 01 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
python版本的读写锁操作方法
Apr 25 #Python
Python简单实现enum功能的方法
Apr 25 #Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 #Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 #Python
Python 中的 else详解
Apr 23 #Python
Python 探针的实现原理
Apr 23 #Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 #Python
You might like
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
element form 校验数组每一项实例代码
2019/10/10 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
python编写的最短路径算法
2015/03/25 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
2014年冬季防火方案
2014/05/21 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
常用的Python代码调试工具总结
2021/06/23 Python