一、线性表特点

线性表:由0个或者多个数据元素组成的有限序列
除了第一个节点(头节点),都有前驱节点
除了最后一个节点(尾节点),都有后继节点
线性表主要由顺序存储结构或者链式存储结构

一般线性表:可以自由的操作节点,例如顺序表,链表
受限制性表:对节点的操作受到限制,例如栈和队列

二、栈引入

栈特点:
1、只能对栈顶进行添加或者弹出
2、后进先出

三、栈要实现的操作

1、创建一个空栈
class Stack:def __init__(self):self.__data=[]
2、push(item)添加一个元素item到栈顶
def push(self,item):self.__data.append(item)
3、pop()弹出栈顶元素
def  pop(self):if self.is_empty():raise ValueError('栈为空')else:self.__data.pop()return self.__data
4、返回栈顶元素
def top(self):if self.empty():raise ValueError('栈为空')else:self.__data[-1]
5、判断栈是否为空
def is_empty(self):return self.__data==[]
6、返回栈的元素个数
def size(self):return len(self.__data)

四、代码块

class Stack:def __init__(self):# 把列表的最后一个元素作为栈顶self.__data = []def push(self, item):# 添加一个元素到栈顶# append insertself.__data.append(item)def pop(self):# 要判断栈是否为空if self.is_empty():raise ValueError('栈为空')return self.__data.pop()def top(self):# 要判断栈是否为空if self.is_empty():raise ValueError('栈为空')return self.__data[-1]def is_empty(self):return self.__data == []def size(self):return len(self.__data)if __name__ == '__main__':stack = Stack()stack.push(1)stack.push(2)stack.push(3)stack.push(4)print(stack.pop())print(stack.pop())print(stack.pop())print(stack.pop())print(stack.pop())

栈——用顺序表实现栈操作相关推荐

  1. 顺序表实现栈相关操作

    1.栈的相关概念     栈是一种特殊的线性表, 其中只允许在固定的一端进行插入和删除元素.进行数据插入和删除的一端叫做栈顶, 另一端成为栈底. 不含任何元素的栈称为空栈, 栈又称为先进先出的线性表. ...

  2. 【python】队列——用顺序表实现队列操作

    一.队列 队列特点:队尾入队,队首出队,先进先出 二.队列要实现的操作 1.创建一个空队列 class Queue:def __init__(self)self.item=[] 2.添加一个元素ite ...

  3. 用顺序表实现学生信息管理系统

    用顺序表实现学生信息管理系统 问题描述: 定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息: (2) 逐个显示学生表中所有学生的相关信息 ...

  4. 顺序表讲解和顺序表实现增删查改

    前言 顺序表是一种参见的数据结构 特点:类似数组的储存,需要预先开辟空间已备数据插入.(1)同时顺序表也因此会存在和数组同样的问题(例如:越界)(2)同时因为其类似与数组的结构给二分查找这种算法提供了 ...

  5. 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc

    顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...

  6. 顺序表实现学生管理系统

    定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息: (2) 逐个显示学生表中所有学生的相关信息: (3) 根据姓名进行查找,返回此 ...

  7. c++:用顺序表实现简单的栈

    main.cpp #include<iostream> #include<string> #include"Stack.hpp" using namespa ...

  8. 解决顺序表实现队列的假溢出的循环队列

    循环队列的参考视频:https://www.bilibili.com/video/BV1nJ411V7bd?p=60 问题:什么是顺序队列的假溢出? 从队首倒到队尾完全占用了分配的空间,是溢出.相反, ...

  9. 数据结构 顺序表实现手机通讯录

    代码 #include <stdio.h> #include <malloc.h> #include <string.h> #include <stdlib. ...

最新文章

  1. 写一个ArrayList类的动态代理类
  2. x86的cpu处理int类型并不是处理char高效多少
  3. 覆盖网络 Flannel 0.7
  4. 杂记-字符串的字节长度
  5. vasp和ms_科学网—VASP如何计算铁磁和考虑强关联作用 - 叶小球的博文
  6. C++纯虚函数与抽象类
  7. 类似mysqlhotcopy备份mysql myisam脚本
  8. 史上最惨创始人!250亿帝国如今8亿贱卖,还被兄弟亲手送进了监狱
  9. 数据结构知识点大汇总(二)
  10. Android开发笔记(十一)自定义视图的构造方法
  11. iOS APP中第三方APP调用自己的APP,打开文件
  12. R语言中经纬度度分秒转小数
  13. 模拟信道和数字信道的区别
  14. php cms 源码下载,PHPCMS v9.6.3 UTF8
  15. FPGA之OV7725摄像头采集与VGA显示实验--3--摄像头配置模块实现(Verilog代码)
  16. css更改鼠标指针样式,几种鼠标点击效果
  17. 小米手机控制PPT文档、查看进度的那些事
  18. 测试用例的设计方法(七种)详细分析
  19. @PersistenceContext 注解在spring中代理
  20. 如何测试视频会议的延迟

热门文章

  1. IT 系统巡检时,需要关注哪些指标?
  2. 数据中心市场的投资风险与回报
  3. 盘点全球最美的15座数据中心
  4. 京东数科宣布机房巡检AI机器人落地金融机构数据中心
  5. 一个交换机到底能带几台摄像头
  6. 编程笔试(解析及代码实现):求不重复数字之和​​​​​​​给定一组整型数字,里面有且仅有两个数字值出现了一次,其他的数字都出现了两次。请写出程序求出这两个只出现了一次的数字之和
  7. Database之SQLSever:SQL命令实现理解索引、规则、默认概念及其相关案例之详细攻略
  8. 成功解决UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 28: illegal multibyte sequenc
  9. 成功解决当Win10系统进行深度学习的时候发现系统C盘满了,教你如何正确卸载一些非必要的内容
  10. CV之OD:计算机视觉之目标检测(Object Detection)方向的简介、使用方法、案例应用之详细攻略