堆栈顺序链式存储的定义与操作
Posted lzdxh027
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆栈顺序链式存储的定义与操作相关的知识,希望对你有一定的参考价值。
- typedef struct SNode *PtrToSNode;
- struct SNode
- ElementType Data;
- PtrToSNode Next;
- ;
- typedef PtrToSNode Stack;
- Stack CreateStack( )
- /* 构建一个堆栈的头结点,返回该结点指针 */
- Stack S;
- S = (Stack)malloc(sizeof(struct SNode));
- S->Next = NULL;
- return S;
- bool IsEmpty ( Stack S )
- /* 判断堆栈S是否为空,若是返回true;否则返回false */
- return ( S->Next == NULL );
- bool Push( Stack S, ElementType X )
- /* 将元素X压入堆栈S */
- PtrToSNode TmpCell;
- TmpCell = (PtrToSNode)malloc(sizeof(struct SNode));
- TmpCell->Data = X;
- TmpCell->Next = S->Next;
- S->Next = TmpCell;
- return true;
- ElementType Pop( Stack S )
- /* 删除并返回堆栈S的栈顶元素 */
- PtrToSNode FirstCell;
- ElementType TopElem;
- if( IsEmpty(S) )
- printf("堆栈空");
- return ERROR;
- else
- FirstCell = S->Next;
- TopElem = FirstCell->Data;
- S->Next = FirstCell->Next;
- free(FirstCell);
- return TopElem;
以上是关于堆栈顺序链式存储的定义与操作的主要内容,如果未能解决你的问题,请参考以下文章