数据结构笔记:栈

原文地址[

分类目录——数据结构笔记](https://blog.csdn.net/bbjg_001/category_9753496.html)

栈(stack),有些地方也成为堆栈,是一种容器,可存储元素、访问元素、删除元素,他的特点是值能允许在容器的一段(称之为 栈顶 top)进行数据的追加(push)和数据读出(pop)。没有了位置/索引的概念,保证任何时候可以访问、删除的元素都是在此前左后存入的那个元素,确定了一种默认的访问顺序。

由于栈数据结构只允许在一段进行操作,因而按照后进先出(LIFO,Last In First Out)的原理运作。

1582681304299

可以通过线性表(顺序表或链表)实现,通过限制操作方法,只能从一端操作(存取)

  • 通过顺序表的方式实现的数据结构

    class Stack(object):
        def __init__(self):
            self.__list = []    # 通过list来实现
    
        def push(self, value):
            '''压/入栈:从栈顶添加元素'''
            self.__list.append(value)   # 把list的尾部当做栈顶来用
    
        def pop(self):
            '''出栈,从栈顶取元素'''
            self.__list.pop()   # 把list的尾部当做栈顶
    
        def peek(self):
            '''返回栈顶元素'''
            if self.__list:
                return self.__list[-1]
            else:
                return
    
        def is_empty(self):
            return not self.__list
    
        def size(self):
            return len(self.__list)
    
发布了147 篇原创文章 · 获赞 142 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/BBJG_001/article/details/104667886