zoukankan      html  css  js  c++  java
  • python 数据结构

    如需转发,请注明出处:小婷儿的python  https://www.cnblogs.com/xxtalhr/p/10293388.html

    欢迎关注小婷儿的博客:

    有问题请在博客下留言或加作者微信tinghai87605025  QQ 87605025

    python QQ交流群:py_data 483766429

    博客园:http://www.cnblogs.com/xxtalhr/

    csdnhttps://blog.csdn.net/u010986753

     一、概念

    栈(stack),有些地方称为堆栈,是一种后入先出(LIFOlast-in-first-out的数据结构,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在一端进行加入数据和输出数据操作。

    栈可以使用顺序存储结构的内存空间实现,其内存空间分布如下:

    wps5B47.tmp

     

    二、应用

    根据栈的特点,列表可以作为栈使用。

    append相当于入栈、pop相当于出栈;

    xxt = [1,2,3,'a','b','c']
    
    xxt.append(6) #入栈 [1, 2, 3, 'a', 'b', 'c', 6]
    
    xxt.pop() #出栈 [1, 2, 3, 'a', 'b', 'c']
    

      

     
    
    class Stack:
        def __init__(self):
            self.xxt = []
    
        def push(self, info):
            '''入栈'''
            self.xxt.append(info)
            return self.xxt
    
        def pop(self):
            '''出栈'''
            return self.xxt.pop()
    
        def isEmpty(self):
            '''判断栈中是否有元素'''
            return len(self.xxt) == 0
    
        def size(self):
            '''获取栈中元素个数'''
            return len(self.xxt)
    
    if __name__ == '__main__':
        xxt = [1, 2, 3, 'a', 'b', 'c']
        xxt.append(6)  # [1, 2, 3, 'a', 'b', 'c', 6]
        xxt.pop()  # [1, 2, 3, 'a', 'b', 'c']
    
        stack = Stack()
        print('stack.push66:', stack.push(66))
        print('stack.push13:', stack.push(13))
        print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))
        print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))
        # print('stack.pop:%s,xxt:%s' % (stack.pop(), xxt))  #IndexError: pop from empty list
        
    '''结果
    stack.push66: [66]
    stack.push13: [66, 13]
    stack.pop:13,xxt:[1, 2, 3, 'a', 'b', 'c']
    stack.pop:66,xxt:[1, 2, 3, 'a', 'b', 'c']
    '''
    

      

    三、栈的相关概念:

      栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。

      压栈:栈的插入操作,叫做进栈,也称压栈、入栈,通常命名为push。

      弹栈:栈的删除操作,也叫做出栈,通常命名为pop。

    OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

    OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

     

    小婷儿的python正在成长中,其中还有很多不足之处,随着学习和工作的深入,会对以往的博客内容逐步改进和完善哒。

    重要的事多做几遍。。。。。。

    wps6861.tmp

  • 相关阅读:
    java中排序算法
    maven常用命令
    Team_GJX模板整理
    BZOJ 4128
    BZOJ 1169: [Baltic2008]Grid
    Codeforces Round #448 (Div. 2)
    HDU 5942
    2016 ICPC 沈阳
    2016 ICPC 北京
    2016 CCPC 杭州
  • 原文地址:https://www.cnblogs.com/pythonbao/p/10293388.html
Copyright © 2011-2022 走看看