• 栈的相关操作


    以栈的顺序存储结构为例:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #define MaxSize 50
     4 typedef int ElemType;
     5 typedef struct{
     6     ElemType data[MaxSize];//数组
     7     int top;
     8 }SqStack;
     9 void InitStack(SqStack &S)
    10 {
    11     //代表栈为空
    12     S.top=-1;
    13 }
    14 bool StackEmpty(SqStack &S)
    15 {
    16     if(S.top==-1) return true;
    17     return false;
    18 }
    19 //入栈
    20 bool Push(SqStack &S,ElemType x)
    21 {
    22     //数组的大小不能改变,避免访问越界
    23     if(S.top==MaxSize-1) return false;
    24     S.data[++S.top]=x;
    25     return true;
    26 }
    27 //出栈
    28 bool Pop(SqStack &S,ElemType &x)
    29 {
    30     if(S.top==-1) return false;
    31     //后减减,x=S.data[S.top];S.top=S.top-1;
    32     x=S.data[S.top--];
    33     return true;
    34 }
    35 //读取栈顶元素
    36 bool GetTop(SqStack &S,ElemType &x)
    37 {
    38     //说明栈为空
    39     if(S.top==-1) return false;
    40     x=S.data[S.top];
    41     return true;
    42 }
    43 //实现栈 可以用数组,也可以用链表
    44 int main()
    45 {
    46     //栈 先进后出 FILO  LIFO
    47     SqStack S;
    48     //判断相关操作是否成功 
    49     bool flag;
    50     //用来存放拿出的元素
    51     ElemType m;
    52     //栈的初始化
    53     InitStack(S);
    54     flag=StackEmpty(S);
    55     if(flag) printf("栈是空的
    ");
    56     //入栈元素3
    57     Push(S,3);
    58     //入栈元素4
    59     Push(S,4);
    60     Push(S,5);
    61     //获取栈顶元素 
    62     flag=GetTop(S,m);
    63     if(flag) printf("获取栈顶元素为 %d
    ",m);
    64     //弹出栈顶元素
    65     flag=Pop(S,m);
    66     if(flag) printf("弹出元素为 %d
    ",m);
    67     //获取栈顶元素 
    68     flag=GetTop(S,m);
    69     if(flag) printf("获取栈顶元素为 %d
    ",m);
    70     system("pause");
    71 }
  • 相关阅读:
    【模板】可持久化线段树
    【模板】可持久化权值线段树(主席树)
    BZOJ 2456 Mode
    【模板】可持久化Treap
    BZOJ 1452 Count 【模板】二维树状数组
    高级线程之线程池
    STL优先队列重载
    单链表及简单应用
    2017 计蒜之道 初赛 第一场 A 阿里的新游戏
    2017 计蒜之道 初赛 第一场 B阿里天池的新任务(简单)
  • 原文地址:https://www.cnblogs.com/shixinzei/p/12539379.html
Copyright © 2020-2023  润新知