码迷,mamicode.com
首页 > 其他好文 > 详细

栈的线性存储结构及其实现

时间:2015-06-24 20:58:05      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

栈的基本原理是先进后出。既可以用数组实现,也可以用链表实现。先用数组实现。

 

这是栈的结构定义

typedef struct {
    char stack[MaxSize];
    int top;
}Stack;

 

这里是一些基本操作

void InitStack(Stack *S);        //初始化操作,建立一个空栈 
int Push(Stack *S,char e);        //压栈操作 
void Pop(Stack *S,char *e);        //出栈操作 
void ClearStack(Stack *S);        //清空栈 
int StackLength(Stack S);        //求栈的大小 
void GetTop(Stack S,char *);    //求栈顶元素 
int StackEmpty(Stack S);        //判断栈是否为空 

 

下面一一进行实现

        //    初始化栈
void InitStack(Stack *S)
{
    S->top=-1;    
} 
        //压栈 
int Push(Stack *S,char e)        
{
    if(S->top==MaxSize-1) 
        {                //栈已满,不能继续压入 
        return 0;
        }    
    else
        { 
        S->stack[++S->top]=e;
        return 1;                
        }
}
//出栈操作 
void Pop(Stack *S,char *e)
{
    if(S->top==-1)
    {
        printf("栈为空!");
    }
    else
    {
        *e=S->stack[S->top--]; 
    }
}
//清空栈 
void ClearStack(Stack *S)
{
    S->top=-1; 
}
//返回栈中元素个数 
int StackLength(Stack S)
{
    return  S.top+1;
}
//返回栈顶元素 
void GetTop(Stack S,char *e)
{
    *e=S.stack[S.top];
}
//判断栈是否为空
int StackEmpty(Stack S)
{
    if(S.top==-1)
    return 0;
    else
    return 1;    
} 

 

 


 

栈的线性存储结构及其实现

标签:

原文地址:http://www.cnblogs.com/tanxing/p/4598459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!