C语言入栈,出栈基础操作,里面非常详细了,我就不啰嗦了
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include<cstring>
#define ERROR -1
typedef int ElementType;
typedef enum {
push, pop, end
} Operation;
/*typedef enum {
false, true
} bool;*/
typedef int Position;
typedef struct SNode *PtrToSNode;
struct SNode {
ElementType *Data; /* 存储元素的数组 */
Position Top; /* 栈顶指针 */
int MaxSize; /* 堆栈最大容量 */
};
typedef PtrToSNode Stack;
//初始化栈
Stack CreateStack(int MaxSize)
{
//准备存放结构体型的变量数据
Stack S = (Stack)malloc(sizeof(struct SNode));
//动态申请数组空间
S->Data = (ElementType *)malloc(MaxSize * sizeof(ElementType));
//把栈顶指针指向0
S->Top = 0;
//给MaxSize赋值
S->MaxSize = MaxSize;
return S;
}
//入栈
bool Push(Stack S, ElementType X)
{
//判断栈顶是否与栈容量相等
if (S->MaxSize == S->Top)
{
//输出Stack Ful