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 文件重命名工具代码
Jul 26 Python
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
Python中的choice()方法使用详解
May 15 Python
Python fileinput模块使用实例
May 28 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 Python
Python爬虫之Selenium库的使用方法
Jan 03 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 验证码的实现代码
2011/07/17 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
Vue中CSS动画原理的实现
2019/02/13 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
python 调整图片亮度的示例
2020/12/03 Python
一个入门级python爬虫教程详解
2021/01/27 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
opencv实现图像几何变换
2021/03/24 Python
物业管理计划书
2014/01/10 职场文书
yy结婚证婚词
2014/01/10 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
小学生倡议书范文
2014/05/13 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
《叶问2》观后感
2015/06/15 职场文书
师范生见习自我总结
2015/06/23 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang