1、头文件
#ifndef _STACK_H
#define _STACK_H
#define SIZE 100
typedef int data_t;
typedef struct stack{
data_t data[SIZE];
int top;
}node, *pnode;
pnode create(void);
int pushstack(pnode S,data_t data);
data_t offstack(pnode S);
int fullstack(pnode S);
int emptystack(pnode S);
int destory(pnode *S);
#endif
2、C文件
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
pnode create(void)
{
pnode temp = (pnode)malloc(sizeof(node));
temp->top = 0;
return temp;
};
int pushstack(pnode S,data_t data){
if( -1 == fullstack(S) )
return -1;
S->data[S->top++] = data;
return 0;
};
data_t offstack(pnode S){
if( -1 == emptystack(S) )
return -1;
return S->data[--S->top];
};
int fullstack(pnode S){
if( SIZE == S->top)
return -1;
return 0;
};
int emptystack(pnode S){
if( 0 == S->top)
return -1;
return 0;
};
int destory(pnode* S)
{
free(*S);
return 0;
};