我是靠谱客的博主 老实小懒猪,最近开发中收集的这篇文章主要介绍数据结构和算法(Python实现)-03-栈和队列1、栈2、队列,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、栈

1.1、栈的基本介绍

  栈(Stack)是一个项的有序集合。添加项和移除项都发生在同一“端”。这一端通常被称为 ,另一端的顶部被称为
  栈的 是有标志性的,因为存储在栈中更靠近 的项就是栈中储存时间最长的项。最新添加的项在移除项时也会第一个被移除。这种排序原则有时也称为LIFO法,也就是 后进先出
  栈很重要,因为它们可以用于反转项的顺序。如下图所示:

栈.png

1.2、栈的Python实现

本文采用Python语言中的列表(list)这种基础数据结构实现栈。首先定义一个 Stack 类,类中包含 进栈、出栈、栈是否为空、栈的大小 等基本方法,具体代码如下:

class Stack():
    
    def __init__(self):
        self.stack = []
        
    # 进栈
    def push(self, item):
        self.stack.append(item)
        
    # 出栈
    def pop(self):
        if self.is_empty() == True:
            return None
        else:
            return self.stack.pop()
    
    # 栈是否为空
    def is_empty(self):
        return self.stack == []
    
    # 栈的大小
    def size(self):
        return len(self.stack)

2、队列

2.1、队列的基本介绍

  队列(Queue)是一系列有顺序的元素的集合,新元素的加入在队列的一端,这一端叫做 队尾 (rear),已有元素的移除发生在队列的另一端,叫做 队首 (front)。当一个元素被加入到队列之后,它就从队尾开始向队首前进,直到它成为下一个即将被移出队列的元素。
  最新被加入的元素必须处于队尾,在队列停留最长时间的元素处于队首。这种原则有时候叫做 先进先出 (FIFO, first-in first-out),进出队列的过程如下图所示:

队列.png

2.2、队列的Python实现

本文采用Python语言中的列表(list)这种基础数据结构实现队列。首先定义一个 Queue 类,类中包含 进队、出队、队列是否为空、队列的大小 等基本方法,具体代码如下:

class Queue():
    
    def __init__(self):
        self.queue = []
        
    # 进队
    def push(self, item):
        self.queue.append(item)
        
    # 出队
    def pop(self):
        if self.is_empty() == True:
            return None
        else:
            return self.queue.pop(0)
    
    # 队列是否为空
    def is_empty(self):
        return self.queue == []
    
    # 队列的长度
    def size(self):
        return len(self.queue)

备注:Python中的 collections 模块中实现了队列这种数据结构,可以直接调用。

参考:https://www.icourse163.org/course/PKU-1206307812

最后

以上就是老实小懒猪为你收集整理的数据结构和算法(Python实现)-03-栈和队列1、栈2、队列的全部内容,希望文章能够帮你解决数据结构和算法(Python实现)-03-栈和队列1、栈2、队列所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部