您的位置:首页 > 理论基础 > 数据结构算法

【数据结构基础】栈--顺序存储结构

2015-01-07 21:40 417 查看
栈是限定仅在表尾进行插入和删除操作的线性表。

栈的结构定义:

typedef int SElemType;   /* SElemType类型根据情况而定,这里假设为int */
typedef struct
{
SElemType data[MAXSIZE];
int pop;             /* 栈顶指针 */
}SqStack;


进栈:

/* 插入元素e为新的栈顶元素 */
Status Push( SqStack *S, SElemType e )
{
if( S->top == MAXSIZE - 1 )   /* 栈满 */
{
return ERROR;
}
S->top++;          /* 栈顶指针增加1 */
S->data[S->top] = e;      /* 将新插入元素赋值给栈顶空间 */
return OK;
}


出栈:

/* 若栈不为空,则删除S的栈顶元素,用e返回其值,并返回OK,否则返回ERROR */
Stack Pop( SqStack *S, SElemType *e )
{
if( S->top == -1 )
return ERROR;
*e = *S->data[S->top];    /* 将要删除的栈顶元素赋值给e */
S->top--;              /* 栈顶指针减1 */
return OK;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: