python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】

 更新时间:2019年10月24日 09:16:08   作者:鲸落丶  
这篇文章主要介绍了python单向链表的基本实现与使用方法,结合实例形式分析了Python单向链表的定义、遍历、添加、删除、查找等相关操作技巧,需要的朋友可以参考下

本文实例讲述了python单向链表的基本实现与使用方法。分享给大家供大家参考,具体如下:

# -*- coding:utf-8 -*-
#! python3
class Node():
  def __init__(self,item):
    #初始化这个节点,值和下一个指向
    self.item = item
    self.next = None
class SingleLinklist():
  def __init__(self):
    #初始化这个单链表的头指针为空
    self._head = None
  def length(self):
    #获取这个链表的长度
    count = 0
    cur = self._head
    while cur != None:
      count+=1
      cur = cur.next
    return count
  def is_empty(self):
    """判断是否为空"""
    return self._head == None
  def add(self,item):
    """在头部添加元素"""
    node = Node(item)
    node.next = self._head
    self._head = node
  def append(self,item):
    """在尾部添加元素"""
    cur = self._head
    node = Node(item)
    while cur != None:
      cur = cur.next
    cur.next = node
  def insert(self,pos,item):
    """在选定的位置添加元素"""
    cur = self._head
    node = Node(item)
    count = 0
    if pos <= 0:
      self.add(item)
    elif pos > (self.length()-1):
      self.append(item)
    else:
      while count < (pos -1):
        count+=1
        cur = cur.next
      node.next = cur.next
      cur.next = node
  def travel(self):
    """遍历整个链表"""
    cur = self._head
    while cur != None:
      print(cur.item,end=" ")
      cur = cur.next
    print(" ")
  def remove(self,item):
    """删除链表"""
    cur = self._head
    pre =None
    while cur != None:
      if cur.item == item:
        if not pre:
          self._head = cur.next
          break
        else:
          pre.next = cur.next
      else:
        pre = cur #
        cur = cur.next
  def search(self,item):
    """查找某个节点"""
    cur = self._head
    while cur != None:
      if cur.item == item:
        print("找到这个元素了")
        return True
      cur = cur.next
    print("抱歉没有这个元素")
    return False
singlistdemo = SingleLinklist()
singlistdemo.add(1)
singlistdemo.add(2)
singlistdemo.add(65)
singlistdemo.insert(2,77)
singlistdemo.insert(1,66)
singlistdemo.insert(0,66)
print(singlistdemo.length())
singlistdemo.travel()
singlistdemo.remove(1)
singlistdemo.travel()
singlistdemo.search(65)

运行结果:

6
66 65 66 2 77 1 

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • Python isalpha()函数的具体使用方法详解

    Python isalpha()函数的具体使用方法详解

    这篇文章主要介绍了Python isalpha()函数的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python中的random()方法的使用介绍

    Python中的random()方法的使用介绍

    这篇文章主要介绍了Python中的random()方法的使用,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • 利用python求积分的实例

    利用python求积分的实例

    今天小编就为大家分享一篇利用python求积分的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • PyTorch模型的保存与加载方法实例

    PyTorch模型的保存与加载方法实例

    Pytorch保存模型其实非常简单,下面这篇文章主要给大家介绍了关于PyTorch模型的保存与加载的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • pytorch 状态字典:state_dict使用详解

    pytorch 状态字典:state_dict使用详解

    今天小编就为大家分享一篇pytorch 状态字典:state_dict使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 浅谈python中常用的excel模块库

    浅谈python中常用的excel模块库

    本文主要介绍了python中常用的excel模块库,感兴趣的同学,可以参考下。
    2021-06-06
  • python pip特殊用法之pip install -v -e .命令详解

    python pip特殊用法之pip install -v -e .命令详解

    这篇文章主要给大家介绍了关于python pip特殊用法之pip install -v -e .命令的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-09-09
  • Django DRF认证组件流程实现原理详解

    Django DRF认证组件流程实现原理详解

    这篇文章主要介绍了Django DRF认证组件流程实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 基于h5py的使用及数据封装代码

    基于h5py的使用及数据封装代码

    今天小编就为大家分享一篇基于h5py的使用及数据封装代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python使用wxPython和PyMuPDF实现合并PDF文档

    Python使用wxPython和PyMuPDF实现合并PDF文档

    处理大量的PDF文档可能会变得复杂和耗时,但是,使用Python编程和一些强大的库,可以使这个任务变得简单而高效,下面我们就来看看Python如何使用wxPython和PyMuPDF合并PDF文档并自动复制到剪贴板吧
    2023-11-11

最新评论