博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈栈、队列
阅读量:4590 次
发布时间:2019-06-09

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

        所谓栈和队列其本质都是一种存储信息的方法,最主要的差别就是两者的存取方式不同,栈相当于是一个一端开口一端封闭的空心玻璃柱,每存入一个数据就是扔进一个与管口等粗的球,取出数据时只能取最上头的,也就是最后一个放进去的,并且当管中无球时,无法取数据;相对而言,队列相当于是一个两端开口的空心玻璃柱,每存入一个数据,就从后端插入一个与管口等粗的球,取数据时只能从前端取不能从后段取,同样当其中无球时无法取。

       从上述介绍中可以发现两者各有优势,但队列有一个显著问题,但插入取出次数多时,可能仅有几个数据但存储却达到几百个位置,因此我们考虑到在已知同时存储的数据不多的时候,可以用环形的数组进行存储。

进出栈代码如下:

void ruzhan(int x) // 入栈时传入入栈数据{    zhan[tot]=x;    tot=tot+1;}void chuzhan(int x) // 出栈时传入出栈几个{    for(int i=0;i
zhan[] // 指存栈用的数组tot // 用于表示当前存储的位置

进出队列代码如下:

void rudulie(int x) // 入队列时传入入队列数据{    duilie[end]=x;    end=end+1;}void chuduilie(int x) // 出队列时传入出队列几个{    for(int i=0;i

环状队列代码如下:

void rudulie(int x) // 入队列时传入入队列数据{    duilie[end]=x;    end=end+1;    if(end>=max)    {        end=end-max;    }}void chuduilie(int x) // 出队列时传入出队列几个{    for(int i=0;i
=max) { begin=begin-max; }}全局变量:duilie[] // 指存队列用的数组begin // 用于表示当前存储的开头位置end // 用于表示当前存储的结束位置max // 用于表示数组的总格数

感谢各位观看我的博客,希望能对大家有所帮助。

转载于:https://www.cnblogs.com/szy-wlxy/p/4650740.html

你可能感兴趣的文章
linux物理地址和虚拟地址
查看>>
linux驱动程序与菜单关联
查看>>
linux在配置菜单中添加选项
查看>>
linux修改文件系统注册设备
查看>>
linux添加地址映射
查看>>
c#程序集
查看>>
Microsoft 中间语言
查看>>
.NET Framework 简介
查看>>
c#通用语言运行时CLR
查看>>
编译和执行 C# 应用程序
查看>>
c#命名空间
查看>>
c#字面量
查看>>
C# 应用程序文件夹结构
查看>>
c# Format() 方法
查看>>
c#实例
查看>>
c# Format() 方法
查看>>
c# String 常用方法应用
查看>>
c# 枚举和位标志
查看>>
c# 枚举
查看>>
c# System.Enum的方法
查看>>