知识大全 顺序栈

Posted 元素

篇首语:历史和哲学负有多种永恒的责任,同时也是简单的责任。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 顺序栈相关的知识,希望对你有一定的参考价值。

顺序栈

  栈的顺序存储结构简称为顺序栈 它是运算受限的顺序表 顺序栈的类型定义  #define StackSize //假定预分配的栈空间最多为 个元素  typedef char DataType;//假定栈元素的数据类型为字符  typedef struct      DataType data[StackSize];      int top;     SeqStack;  注意      ①顺序栈中元素用向量存放     ②栈底位置是固定不变的 可设置在向量两端的任意一个端点     ③栈顶位置是随着进栈和退栈操作而变化的 用一个整型量top(通常称top为栈顶指针)来指示当前栈顶位置

顺序栈的基本操作   前提条件      设S是SeqStack类型的指针变量 若栈底位置在向量的低端 即S >data[ ]是栈底元素 ( ) 进栈操作     进栈时 需要将S >top加  注意   ①S >top==StackSize 表示栈满  ② 上溢 现象 当栈满时 再做进栈运算产生空间溢出的现象       上溢是一种出错状态 应设法避免

( ) 退栈操作  退栈时 需将S >top减  注意      ①S >top< 表示空栈     ② 下溢 现象——当栈空时 做退栈运算产生的溢出现象       下溢是正常现象 常用作程序控制转移的条件 顺序栈在进栈和退栈操作时的具体变化情况【参见动画演示】

顺序栈的基本运算( ) 置栈空  void InitStack(SeqStack *S)    //将顺序栈置空        S >top= ;   

( ) 判栈空  int StackEmpty(SeqStack *S)            return S >top== ;   

( ) 判栈满  int StackFull(SeqStack *SS)            return S >top==StackSize ;    

( ) 进栈  void Push(S x)            if (StackFull(S))             Error( Stack overflow ); //上溢 退出运行       S >data[++S >top]=x;//栈顶指针加 后将x入栈    

( ) 退栈  DataType Pop(S)          if(StackEmpty(S))           Error( Stack underflow ); //下溢 退出运行      return S >data[S >top ];//栈顶元素返回后将栈顶指针减    

( ) 取栈顶元素  DataType StackTop(S)           if(StackEmpty(S))           Error( Stack is empty );       return S >data[S >top];    

cha138/Article/program/sjjg/201311/22756

相关参考

知识大全 数据结构之顺序栈

基本概念  顺序栈即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素基本算法  在顺序栈上实现栈的六种基本运算具体算法如下  置空栈      判栈空   &nbs

知识大全 第二部分 栈、队列和数组[8]

   (三)队列的顺序存储结构  //顺序存储结构(循环队列)  结构定义:  #defineMAXQSIZE//最大队列长度  typedefstruct  QElem

知识大全 09年自考《数据结构》各章要点一[6]

  在顺序栈中有上溢和下溢的现象  ·上溢是栈顶指针指出栈的外面是出错状态  ·下溢可以表示栈为空栈因此用来作为控制转移的条件  顺序栈中的基本操作有六种  ·构造空栈  ·判栈空  ·判栈满  ·进

知识大全 数据结构考研分类复习真题 第三章 答案[11]

  ()每个栈仅用一个顺序存储空间时操作简便但分配存储空间小了容易产生溢出分配空间大了容易造成浪费各栈不能共享空间  ()多个栈共享一个顺序存储空间充分利用了存储空间只有在整个存储空间都用完时才能产生

知识大全 数据结构考研分类复习真题 第三章 答案[6]

  ()能得到在依次进栈后和出栈得部分输出序列然后入栈出栈得部分出栈序列入栈并出栈得部分输出序列最后退栈直到栈空得输出序列其操作序列为AAADDAADADDD  ()不能得到输出顺序为的序列部分合法操

知识大全 数据结构考研分类复习真题 第三章 栈和队列[16]

  设一数列的输入顺序为若采用堆栈结构并以A和D分别表示入栈和出栈操作试问通过入出栈操作的合法序列【北方交通大学 一(分)】  ()能否得到输出顺序为的序列(分)  ()能否得到输出顺序为的

知识大全 数据结构第三章(栈和队列)串讲+复习要点

  第三章栈和队列  本章介绍的是栈和队列的逻辑结构定义及在两种存储结构(顺序存储结构和链式存储结构)上如何实现栈和队列的基本运算本章的重点是掌握栈和队列在两种存储结构上实现的基本运算难点是循环队列中

知识大全 数据结构考研分类复习真题 第三章 栈和队列[22]

  五算法设计题  设有两个栈SS都采用顺序栈方式并且共享一个存储区[Omaxsize]为了尽量利用空间减少溢出的可能可采用栈顶相向迎面增长的存储方式试设计SS有关入栈和出栈的操作算法【哈尔滨工业大学

知识大全 数据结构考研分类复习真题 第三章 答案[28]

  [题目分析]这是以读入数据的顺序为相反顺序进行累乘问题可将读入数据放入栈中到输入结束将栈中数据退出进行累乘累乘的初值为  PROC test;  CONSTmaxsize=;  VARs

知识大全 出栈序列的研究[7]

判断一个序列是否为出栈序列随着n的变大出栈序列总数越来越多由文献[]和[]可知出栈序列的求解问题是一个NP问题所以判断一个序列是否为一个出栈序列更为重要在文献[]的传统算法中根据栈的定理[]判断某一序