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通过scapy获取局域网所有主机mac地址示例
May 04 Python
Python中的filter()函数的用法
Apr 27 Python
使用url_helper简化Python中Django框架的url配置教程
May 30 Python
python设计模式大全
Jun 27 Python
pandas按若干个列的组合条件筛选数据的方法
Apr 11 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
python实现定时压缩指定文件夹发送邮件
Dec 22 Python
python 读取修改pcap包的例子
Jul 23 Python
Python字符串的修改方法实例
Dec 19 Python
python实现的Iou与Giou代码
Jan 18 Python
Django如何实现密码错误报错提醒
Sep 04 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
DedeCms模板安装/制作概述
2007/03/11 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
python基础 range的用法解析
2019/08/23 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Python基于Faker假数据构造库
2020/11/30 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
init进程的作用
2015/08/20 面试题
销售找工作求职信
2013/12/20 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
师德师风个人总结
2015/02/06 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
JS高级程序设计之class继承重点详解
2022/07/07 Javascript