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中random模块生成随机数详解
Mar 10 Python
python逆向入门教程
Jan 15 Python
python中的随机函数random的用法示例
Jan 27 Python
python3安装speech语音模块的方法
Dec 24 Python
python异步存储数据详解
Mar 19 Python
Django框架视图函数设计示例
Jul 29 Python
python 生成器和迭代器的原理解析
Oct 12 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
在python shell中运行python文件的实现
Dec 21 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
Python验证码截取识别代码实例
May 16 Python
Python图片检索之以图搜图
May 31 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 session安全问题分析
2011/06/24 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python Grid使用和布局详解
2018/06/30 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
关于numpy数组轴的使用详解
2019/12/05 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
软件测试英文面试题
2012/10/14 面试题
《晏子使楚》教学反思
2014/02/08 职场文书
初中信息技术教学反思
2016/02/16 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL