堆栈顺序存储的定义与操作
Posted lzdxh027
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆栈顺序存储的定义与操作相关的知识,希望对你有一定的参考价值。
- typedef int Position;
- struct SNode
- ElementType *Data; /* 存储元素的数组 */
- Position Top; /* 栈顶指针 */
- int MaxSize; /* 堆栈最大容量 */
- ;
- typedef struct SNode *Stack;
- Stack CreateStack( int MaxSize )
- Stack S = (Stack)malloc(sizeof(struct SNode));
- S->Data = (ElementType *)malloc(MaxSize * sizeof(ElementType));
- S->Top = -1;
- S->MaxSize = MaxSize;
- return S;
- bool IsFull( Stack S )
- return (S->Top == S->MaxSize-1);
- bool Push( Stack S, ElementType X )
- if ( IsFull(S) )
- printf("堆栈满");
- return false;
- else
- S->Data[++(S->Top)] = X;
- return true;
- bool IsEmpty( Stack S )
- return (S->Top == -1);
- ElementType Pop( Stack S )
- if ( IsEmpty(S) )
- printf("堆栈空");
- return ERROR; /* ERROR是ElementType的特殊值,标志错误 */
- else
- return ( S->Data[(S->Top)--] );
以上是关于堆栈顺序存储的定义与操作的主要内容,如果未能解决你的问题,请参考以下文章