zoukankan      html  css  js  c++  java
  • 顺序栈的基本操作

    #include <stdio.h>
    #include <stdlib.h>
    
    #define MaxSize 50
    typedef int ElemType;
    typedef struct{
    	ElemType data[MaxSize];//数组
    	int top;
    }SqStack;
    void InitStack(SqStack &S)
    {
    	S.top=-1;//代表栈为空
    }
    
    bool StackEmpty(SqStack &S)
    {
    	if(S.top==-1)
    		return true;
    	else
    		return false;
    }
    //入栈
    bool Push(SqStack &S,ElemType x)
    {
    	if(S.top==MaxSize-1)//数组的大小不能改变,避免访问越界
    	{
    		return false;
    	}
    	S.data[++S.top]=x;
    	return true;
    }
    //出栈
    bool Pop(SqStack &S,ElemType &x)
    {
    	if(-1==S.top)
    		return false;
    	x=S.data[S.top--];//后减减,x=S.data[S.top];S.top=S.top-1;
    	return true;
    }
    //读取栈顶元素
    bool GetTop(SqStack &S,ElemType &x)
    {
    	if(-1==S.top)//说明栈为空
    		return false;
    	x=S.data[S.top];
    	return true;
    }
    //实现栈 可以用数组,也可以用链表
    int main()
    {
    	SqStack S;//先进后出 FILO  LIFO
    	bool flag;
    	ElemType m;//用来存放拿出的元素
    	InitStack(S);//初始化
    	flag=StackEmpty(S);
    	if(flag)
    	{
    		printf("栈是空的
    ");
    	}
    	Push(S,3);//入栈元素3
    	Push(S,4);//入栈元素4
    	Push(S,5);
    	flag=GetTop(S,m);//获取栈顶元素
    	if(flag)
    	{
    		printf("获取栈顶元素为 %d
    ",m);
    	}
    	flag=Pop(S,m);//弹出栈顶元素
    	if(flag)
    	{
    		printf("弹出元素为 %d
    ",m);
    	}
    	system("pause");
    }
    
  • 相关阅读:
    PHP如何解决网站大流量与高并发的问题
    HTML CSS 特殊字符表
    PHP 把返回的数据集转换成Tree树
    网页加载时域名加载数量限制
    关于浮点型误差的解决方法
    MVC三层架构
    MyBatis
    plsql储存过程
    游标和触发器
    使用plsql编程
  • 原文地址:https://www.cnblogs.com/buxiu888/p/14695624.html
Copyright © 2011-2022 走看看