zoukankan      html  css  js  c++  java
  • 栈的相关操作

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

     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 }
  • 相关阅读:
    bzoj3196 Tyvj 1730 二逼平衡树
    bzoj2929 [Poi1999]洞穴攀行
    bzoj2325 [ZJOI2011]道馆之战
    cf413E Maze 2D
    bzoj2599 [IOI2011]Race
    bzoj1528 [POI2005]sam-Toy Cars
    UVA 796 Critical Links(无向图求桥)
    UVA 315 Network(无向图求割点)
    HDU 1269 迷宫城堡(求是否只有一个强连通分量)
    HDU 3974 Assign the task
  • 原文地址:https://www.cnblogs.com/shixinzei/p/12539379.html
Copyright © 2011-2022 走看看