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使用当前时间、随机数产生一个唯一数字的方法
Sep 18 Python
深入浅出学习python装饰器
Sep 29 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
python中怎么表示空值
Jun 19 Python
浅析python函数式编程
Sep 26 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
Python学习之time模块的基本使用
Jan 17 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
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
使用javascipt---实现二分查找法
2013/04/10 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
JS实现左右无缝轮播图代码
2016/05/01 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
opencv与numpy的图像基本操作
2019/03/08 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
Python中url标签使用知识点总结
2020/01/16 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
计算机求职信
2013/12/01 职场文书
学生爱国演讲稿
2014/01/14 职场文书
精通CAD能手自荐书
2014/01/31 职场文书
国窖1573广告词
2014/03/21 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
父母寄语大全
2014/04/12 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
银行服务理念口号
2015/12/25 职场文书