堆栈--顺序存储

/**
 * 栈--顺序存储
 **/

#include <stdlib.h>
#include <iostream.h>

#define OK 1
#define ERROR 0
//栈的最大数据元素数目
#define MAX_STACK 10   

typedef struct stack{
    int item[MAX_STACK];
    //存放栈中数据元素的存储单元
    int top;//栈顶指针
}STACK;

//初始化栈S   
void InItStack(STACK *S)     
{    
    S->top=-1;   
} 

//入栈 
void Push(STACK *S,int item)
{
    if (S->top==MAX_STACK-1) exit(0);
    else S->item[++S->top]=item;
}

//判断栈S是否为空
int StackEmpty(STACK S)
{
   if(S.top==-1) return 1;
   else 0;
}

//出栈    
void Pop(STACK *S,int *item)
{
    if (StackEmpty(*S))  exit(0);
    else *item=S->item[S->top--];
}

//获取栈顶元素内容 
void GetTop(STACK S,int *item)
{
    if (StackEmpty(S)) exit(0);
    else *item=S.item[S.top];
}

 

posted @ 2013-02-23 17:55  何长春  阅读(164)  评论(0编辑  收藏  举报