首页 > 其他分享 >ds:顺序表实现栈、队列的思想

ds:顺序表实现栈、队列的思想

时间:2023-05-11 11:36:28浏览次数:39  
标签:顺序 队列 tag rear ds 队满 指针

 

 

一、顺序表实现栈:

1.入栈时需要判断栈满、出栈时需要判断栈空

2.根据init()时s.top栈顶指针等于1、等于0的不同,在入栈、出栈时对于“元素操作、栈顶指针移动”的操作顺序也不同

 

 

二、顺序表实现队列:

1.需要使用()%maxsize取模运算来将队列变成循环队列。队满:(Q.rear+1)%maxsize = Q.front队满;

2.基本的实现方式是要用rear指针指向下一个存储元素的位置,会始终占用一个位置。为了避免这种情况,需要定义一个size来存储队列内的元素数量、或者定义tag操作来表示当前是进行插入、删除操作:只有插入会导致队满,只有删除会导致队空,使用tag时对队满、队空的判断也不一样了,需要(Q.rear == Q.front && tag = 0)这样两个条件一起判断

标签:顺序,队列,tag,rear,ds,队满,指针
From: https://www.cnblogs.com/jinziguang/p/17390541.html

相关文章

  • spring aop MethodSignature = (MethodSignature) joinPoint.getSignature();
    MethodSignaturesignature=(MethodSignature)joinPoint.getSignature();为什么这里可以转回为MethodSignatrue,官网上没有这么说,如果这里转换失败,那运行会报错,这是不允许的。必须找到调用这里的代码,看看这里的Signature 是怎么放进去的。网上找了好久没有找到相关知识......
  • 算法学习day13栈与队列part03-239、347
    packageLeetCode.StackAndQueuepart03;importjava.util.ArrayDeque;/***239.滑动窗口最大值*给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。*你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。*返回滑动......
  • 算法学习day11栈与队列part02-20、1047、150
    packageLeetCode.StackAndQueuepart02;/***20.有效的括号*给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。*有效字符串需满足:*左括号必须用相同类型的右括号闭合。*左括号必须以正确的顺序闭合。*每个右括号都有一个对应的相同类型的......
  • 滑动窗口 单调队列
    描述 给一个长度为N的数组,一个长为K的滑动窗体从最左端移至最右端,你只能看到窗口中的K个数,每次窗体向右移动一位,如下图:你的任务是找出窗体在各个位置时的最大值和最小值。  输入 第1行:两个整数N和K;第2行:N个整数,表示数组的N个元素(≤2×109 );对......
  • DNA测序中的reads mapping方向的信息
    在DNA测序中,readsmapping方向指的是描绘short-reads(短序列)对于参考基因组的比对方向,即将短读序列与参考基因组进行比对时匹配的方向。这个方向信息通常被编码为“+”或“-”,其中“+”表示reads的5'端与正向链的3'端相对应,“-”表示reads的5'端与负向链的3'端相对应。具体来说,在......
  • DSP+ARM+FPGA开发板 板载 双网口/2路RS485/2路RS232/ADC/DAC/CAN
    一、开发套件简介 XQ138AS-EVM是基于XQ138F核心板(OMAPL138+XilinxFPGA)开发的DSP+ARM+FPGA三核评估套件,用户可以采用该开发套件进行项目前期的验证和评估,也可以直接用来开发自己的产品。Ø 底板资源丰富,集成了SATA、SD卡、USBOTG、USBHOST、UART、双网络(1个千兆、1个百兆)、2......
  • 2022年考研数据结构_3 栈和队列
    文章目录3.栈和队列3.1栈3.1.1栈的定义3.1.2栈的实现3.1.3栈的应用(1)递归(2)四则运算表达式求解①中缀表达式转后缀表达式②后缀表达式的计算3.2队列3.2.1队列的定义3.2.2队列的实现3.2.2队列的应用3.3应用3.3.1表达式语言表示1--中缀转后缀语言表述2--中缀转后缀优......
  • python 多线程与队列
    多线程是指在一个程序中同时运行多个线程,每个线程都可以独立地执行特定的任务。在Python中,可以使用内置的threading模块来创建和管理线程。使用多线程的主要优点是能够提高程序的性能和响应速度,特别是在处理I/O操作时。通过将耗时的任务放入后台线程中,主线程可以继续执行其他任务......
  • 双链表和队列-->gcc编译
    双链表队列doublueList.h#include<stdlib.h>#include<stdio.h>#include<assert.h>#include<stdbool.h>typedefintLTDataType;typedefstructDList{ LTDataTypedata; structDList*next; structDList*prev;}LTNode;LTNode*init();......
  • How to fix WS2812B RGB LEDs strip not work bug All In One
    HowtofixWS2812BRGBLEDsstripnotworkbugAllInOnebugshttps://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/issues/151solutiondemos(......