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


Posted in Python onOctober 24, 2019

本文实例讲述了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中decorator使用实例
Apr 14 Python
python实现TCP服务器端与客户端的方法详解
Apr 30 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
python使用Tesseract库识别验证
Mar 21 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
Python-for循环的内部机制
Jun 12 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 #Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 #Python
python模块导入的方法
Oct 24 #Python
python读取word 中指定位置的表格及表格数据
Oct 23 #Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 #Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 #Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 #Python
You might like
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
js如何编写简单的ajax方法库
2017/08/02 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
python交互界面的退出方法
2019/02/16 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
python使用Geany编辑器配置方法
2020/02/21 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
旅游市场营销方案
2014/03/09 职场文书
总经理检讨书
2014/09/15 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
python实现简单倒计时功能
2021/04/21 Python