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使用正则表达式替换匹配成功的组
Nov 17 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
python日志模块logbook使用方法
Sep 19 Python
带你学习Python如何实现回归树模型
Jul 16 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 Python
Python实现信息管理系统
Jun 05 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
实现树状结构的两种方法
2006/10/09 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
认识less和webstrom的less配置方法
2017/08/02 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
python executemany的使用及注意事项
2017/03/13 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Python实现word2Vec model过程解析
2019/12/16 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
全陪导游欢迎词
2014/01/17 职场文书
教师考核评语大全
2014/12/31 职场文书
研究生导师评语
2014/12/31 职场文书
礼貌问候语大全
2015/11/10 职场文书
高中政治教师教学反思
2016/02/23 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers