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入门篇之函数
Oct 20 Python
python解决网站的反爬虫策略总结
Oct 26 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
Python常用算法学习基础教程
Apr 13 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
python中单下划线_的常见用法总结
Jul 10 Python
python修改FTP服务器上的文件名
Sep 11 Python
Python list运算操作代码实例解析
Jan 20 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
python FTP编程基础入门
Feb 27 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
Django使用echarts进行可视化展示的实践
Jun 10 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
FleaPHP的安全设置方法
2008/09/15 PHP
php 读取文件乱码问题
2010/02/20 PHP
php 实现Hash表功能实例详解
2016/11/29 PHP
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python中实现对list做减法操作介绍
2015/01/09 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
python try 异常处理(史上最全)
2019/03/07 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
深入理解Python 多线程
2020/06/16 Python
Python设计密码强度校验程序
2020/07/30 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
北承题目(C++)
2012/05/16 面试题
毕业生多媒体设计求职信
2013/10/12 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
商场经理竞聘演讲稿
2014/01/01 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
政治思想表现评语
2014/05/04 职场文书
学校节能减排方案
2014/06/13 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
城南旧事电影观后感
2015/06/16 职场文书
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript