Python单链表简单实现代码

 更新时间:2016年04月27日 08:57:49   作者:阳光_如此耀眼  
这篇文章主要介绍了Python单链表简单实现代码,结合实例形式分析了Python单链表的具体定义与功能实现技巧,需要的朋友可以参考下

本文实例讲述了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 Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

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

相关文章

  • python使用turtle库绘制奥运五环

    python使用turtle库绘制奥运五环

    turtle也叫海龟,是turtle绘图体系的python实现,这篇文章主要介绍了python使用turtle库绘制奥运五环,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2020-02-02
  • pytorch 使用半精度模型部署的操作

    pytorch 使用半精度模型部署的操作

    这篇文章主要介绍了pytorch 使用半精度模型部署的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python的Flask框架中实现简单的登录功能的教程

    Python的Flask框架中实现简单的登录功能的教程

    这篇文章主要介绍了Python的Flask框架中实现简单的登录功能的教程,登录是各个web框架中的基础功能,需要的朋友可以参考下
    2015-04-04
  • Flask进阶之构建RESTful API和数据库交互操作

    Flask进阶之构建RESTful API和数据库交互操作

    这篇文章主要为大家介绍了Flask进阶之构建RESTful API和数据库交互操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Python绘制专业的K线图 源代码解析

    Python绘制专业的K线图 源代码解析

    这篇文章主要介绍了Python绘制专业的K线图,使用Python绘制一幅专业的K线图,是量化投资和金融数据分析的必备功课。下面我将从K线图简介、数据获取、K线图绘制及成交量绘制等方面,结合源代码,一步步实现专业K线图的绘制,需要的朋友可以参考下
    2021-10-10
  • PyQt5每天必学之创建窗口居中效果

    PyQt5每天必学之创建窗口居中效果

    这篇文章主要介绍了PyQt5每天必学之创建窗口居中效果,使应用程序窗口显示在屏幕的中心,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python 中urls.py:URL dispatcher(路由配置文件)详解

    Python 中urls.py:URL dispatcher(路由配置文件)详解

    这篇文章主要介绍了Python 中urls.py:URL dispatcher(路由配置文件)详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • 聊聊Python中的浮点数运算不准确问题

    聊聊Python中的浮点数运算不准确问题

    这篇文章主要介绍了聊聊Python中的浮点数运算不准确问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python之re模块详解

    Python之re模块详解

    这篇文章主要介绍了Python编程之Re模块下的函数介绍,还是比较不错的,这里分享给大家,供需要的朋友参考,希望能够给你带来帮助
    2021-09-09
  • 聊聊boost python3依赖安装问题

    聊聊boost python3依赖安装问题

    这篇文章主要介绍了boost python3依赖安装,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论