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 相关文章推荐
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
Python 多线程Threading初学教程
Aug 22 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
对dataframe数据之间求补集的实例详解
Jan 30 Python
Django保护敏感信息的方法示例
May 09 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
python读取当前目录下的CSV文件数据
Mar 11 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
python 如何区分return和yield
Sep 22 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP简洁函数小结
2011/08/12 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
php获取url参数方法总结
2014/11/13 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
$("").click与onclick的区别示例介绍
2014/09/25 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
js实现秒表计时器
2019/12/16 Javascript
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
python+tkinter实现学生管理系统
2019/08/20 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
员工辞职信怎么写
2015/02/27 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
开票证明
2015/06/23 职场文书
参加招聘会后的感想
2015/08/10 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL