博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构-栈
阅读量:6988 次
发布时间:2019-06-27

本文共 973 字,大约阅读时间需要 3 分钟。

栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,

特点:

  只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。

  没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序 

 

 

 

 

栈的实现 可以用顺序表 也可以用链表  

顺序表的 尾部删除 和添加 的时间复杂度 O(1)

顺序表    保序的添加 和 删除 是  O(n)

 

以下用顺序表实现 栈

  • Stack() 创建一个新的空栈
  • push(item) 添加一个新的元素item到栈顶
  • pop() 弹出栈顶元素
  • peek() 返回栈顶元素
  • is_empty() 判断栈是否为空
  • size() 返回栈的元素个数
class Stack(object):    '''栈'''    def __init__(self):        self.items = []    def is_empty(self):        return not self.items    def push(self,item):        self.items.append(item)    def pop(self):        return self.items.pop()    def peek(self):        return self.items[len(self.items)-1]    def size(self):        return len(self.items)if __name__ == "__main__":    stack = Stack()    stack.push("hello")    stack.push("world")    stack.push("itcast")    print (stack.size())    print (stack.peek())    print (stack.pop())    print (stack.pop())    print (stack.pop())

 

转载于:https://www.cnblogs.com/devlost/p/9551764.html

你可能感兴趣的文章
基于socket.io的实时消息推送
查看>>
查询进程并杀死
查看>>
VMXNET3 vs E1000E and E1000
查看>>
7200的GRE(隧道)+ipsec(传输模式+pre-share)配置
查看>>
四、编译安装php-5.5.34
查看>>
Thinkpad X240修改bios引导,U盘安装系统
查看>>
Slave SQL: Relay log read failure: Could not parse relay log event entry.
查看>>
抽取Zabbix的图形整合到自己后台
查看>>
Linux输入子系统
查看>>
大数据_JAVA_第二天_进制转化和补码存储方式
查看>>
linux下oracle 11g dg环境搭建
查看>>
laravel安装intervention/image图像处理扩展 报错fileinfo is missing
查看>>
Jenkins(2)
查看>>
满血回归
查看>>
利用ARP欺骗另一台电脑并偷窥
查看>>
第一周作业
查看>>
Web应用的工作原理
查看>>
Python和Java就业前景对比
查看>>
Python学习笔记__9章 IO编程
查看>>
Python学习笔记__20.1章 协程
查看>>