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 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
Python实现的下载8000首儿歌的代码分享
Nov 21 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
详解Python学习之安装pandas
Apr 16 Python
python简单区块链模拟详解
Jul 03 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
详解python方法之绑定方法与非绑定方法
Aug 17 Python
Python基础之Socket通信原理
Apr 22 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
Ext 表单布局实例代码
2009/04/30 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
vue弹窗组件使用方法
2018/04/28 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
遗传算法之Python实现代码
2017/10/10 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
python超时重新请求解决方案
2019/10/21 Python
通过实例了解python property属性
2019/11/01 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Python pip使用超时问题解决方案
2020/08/03 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
环境保护标语
2014/06/20 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
运动会班级前导词
2015/07/20 职场文书