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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
Python深入学习之对象的属性
Aug 31 Python
在Python中处理XML的教程
Apr 29 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
python 用下标截取字符串的实例
Dec 25 Python
详解Python的三种可变参数
May 08 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
python定时任务 sched模块用法实例
Nov 04 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
详解Python中的for循环
Apr 30 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
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
医药营销专业个人自荐信
2013/09/29 职场文书
计算机专业学生的自我评价
2013/12/15 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
培训自我鉴定
2014/01/31 职场文书
出纳员岗位责任制
2014/02/11 职场文书
竞聘演讲稿
2014/04/24 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
员工安全生产责任书
2014/07/22 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
个人求职自荐信范文
2015/03/06 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python