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的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python简单文本处理的方法
Jul 10 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python实现快速计算词频功能示例
Jun 25 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
python numpy 反转 reverse示例
Dec 04 Python
深入了解python列表(LIST)
Jun 08 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
Python如何配置环境变量详解
May 18 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 eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP URL路由类实例
2013/11/12 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
Python pandas如何向excel添加数据
2020/05/22 Python
python学习笔记之多进程
2020/08/06 Python
法国珠宝店:CLEOR
2017/01/29 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
办公室人员先进事迹
2014/01/27 职场文书
初中生操行评语大全
2014/04/24 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
干部考核工作总结2015
2015/07/24 职场文书