热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

数据结构3_栈和队列

3栈和队列栈和队列的操作是线性表操作的子集。它们是操作受限的线性表。从数据结构的角度看,是限定性的数据结构。从数据类型的角度看,是和线性表大不相同的两类
3 栈和队列

栈和队列的操作是线性表操作的子集。它们是操作受限的线性表。

从数据结构的角度看,是限定性的数据结构。

从数据类型的角度看,是和线性表大不相同的两类重要的抽象数据类型。

3.1 栈

栈(Stack)是限定仅在表尾进行插入或删除操作的线性表。

表尾称为栈顶(Top)。

表头称为栈底(bottom)。

S=(a1, a2, a3, …an,),a1称为栈底元素,an为栈顶元素。栈中元素按a1、a2、…an的依次进栈。

退栈的元素应为栈顶元素。换句话说,栈的修改是按后进先出的原则进行的。栈又称为后进先出(LIFO)线性表。

栈的操作:栈顶进行插入或删除,栈的初始化、判空、取栈顶元素;

 

栈也有两种存储表示方法:顺序栈、链栈;

3.2 栈的应用举例

 

3.3 栈与递归实现

Hanoi塔

3.4 队列

先进先出的线性表结构;只允许在表的一端进行插入,而在另一端删除元素;

队尾、队头;

Queue

队列有两种存储表示:

链表表示的队列叫链队列;

循环队列;

3.5 离散事件模拟

银行排队问题,计算一天中客户在银行逗留的平均时间,模拟银行的业务活动。

客户到达和离开银行的这两个时刻发生的事情称为“事件”。整个模拟程序将按照事件发生的先后顺序进行处理。这样一种模拟程序称为事件驱动模拟

转:https://www.cnblogs.com/grooovvve/p/10398419.html



推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 使用WinForms 实现 RabbitMQ RPC 示例
    本文通过两个WinForms应用程序演示了如何使用RabbitMQ实现远程过程调用(RPC)。一个应用作为客户端发送请求,另一个应用作为服务端处理请求并返回响应。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 变量名 'name' 是否具有特殊含义?
    探讨变量名 'name' 在编程中的特殊性及其使用场景,解析其背后的技术原理。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 本文探讨了C#语言中类的嵌套使用,特别是当嵌套类作为方法参数时,其内部状态是否会因方法调用而发生改变的问题。通过实例分析,详细说明了引用类型在不同情况下的行为。 ... [详细]
  • 如何从python读取sql[mysql基础教程]
    从python读取sql的方法:1、利用python内置的open函数读入sql文件;2、利用第三方库pymysql中的connect函数连接mysql服务器;3、利用第三方库pa ... [详细]
  • TortoiseSVN与VisualSVN Server的安装及基本操作指南
    本文详细介绍了如何安装VisualSVN Server以及TortoiseSVN客户端,并提供了基本的操作步骤,包括配置仓库、用户管理及权限设置等关键环节。 ... [详细]
  • 深入解析:OpenShift Origin环境下的Kubernetes Spark Operator
    本文探讨了如何在OpenShift Origin平台上利用Kubernetes Spark Operator来管理和部署Apache Spark集群与应用。作为Radanalytics.io项目的一部分,这一开源工具为大数据处理提供了强大的支持。 ... [详细]
  • 本文详细介绍了MySQL中的存储过程,包括其定义、优势与劣势,并提供了创建、调用及删除存储过程的具体示例,旨在帮助开发者更好地利用这一数据库特性。 ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 本文详细介绍了JSP(Java Server Pages)的九大内置对象及其功能,探讨了JSP与Servlet之间的关系及差异,并提供了实际编码示例。此外,还讨论了网页开发中常见的编码转换问题以及JSP的两种页面跳转方式。 ... [详细]
  • 深入解析8086 CPU的转移指令
    本文详细介绍了8086 CPU中的转移指令,包括无条件转移、条件转移、循环指令及过程调用等,同时探讨了offset操作符的功能及其应用实例。 ... [详细]
author-avatar
小寒风
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有