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中学习K-Means和图片压缩
Nov 20 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
Python并发之多进程的方法实例代码
Aug 15 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
pandas.DataFrame.drop_duplicates 用法介绍
Jul 06 Python
Python调用C/C++的方法解析
Aug 05 Python
基于python实现操作redis及消息队列
Aug 27 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 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(二)
2012/03/21 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python ddt实现数据驱动
2018/03/14 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
Python中的集合介绍
2019/01/28 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
python opencv实现图像配准与比较
2021/02/09 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
酒店营销策划方案
2014/02/07 职场文书
公司经理聘任书
2014/03/29 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
PYTHON InceptionV3模型的复现详解
2022/05/06 Python