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实现批量转换文件编码(批转换编码示例)
Jan 23 Python
Python计算一个文件里字数的方法
Jun 15 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
python爬取哈尔滨天气信息
Jul 14 Python
Python列表list排列组合操作示例
Dec 18 Python
Python中shapefile转换geojson的示例
Jan 03 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 Python
python处理“
Jun 10 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
Python关于OS文件目录处理的实例分享
May 23 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
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
python连接mysql实例分享
2016/10/09 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
Python里面search()和match()的区别
2016/09/21 面试题
玲玲的画教学反思
2014/02/04 职场文书
手机被没收检讨书
2014/02/22 职场文书
事假请假条范文
2014/04/11 职场文书
应届生找工作求职信
2014/06/24 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
三好学生评语大全
2014/12/29 职场文书
新生开学寄语大全
2015/05/28 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
Oracle锁表解决方法的详细记录
2022/06/05 Oracle