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 参数列表中的self 显式不等于冗余
Dec 01 Python
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
使用PDB模式调试Python程序介绍
Apr 05 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
python 内置函数filter
Jun 01 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
Python绘图之二维图与三维图详解
Aug 04 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 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分页显示制作详细讲解
2006/12/05 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python转换HTML到Text纯文本的方法
2015/01/15 Python
17个Python小技巧分享
2015/01/23 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
django模板结构优化的方法
2019/02/28 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
小学后勤管理制度
2014/01/14 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
基层党支部承诺书
2015/04/30 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
青年志愿者活动感想
2015/08/07 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技