#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 10
typedef int Status;
typedef int SElemType;
typedef struct StackNode
{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
typedef struct LinkStack
{
LinkStackPtr top;
int count;
}LinkStack;
Status StackEmpty(LinkStack *S)
{
if(S->count == 0 )
return TRUE;
else
return FALSE;
}
Status Push(LinkStack *S,SElemType e)
{
LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode));
s->data = e;
s->next = S->top;
S->top = s;
S->count++;
return OK;
}
Status Pop(LinkStack *S,SElemType *e)
{
LinkStackPtr p;
if(StackEmpty(S))
return ERROR;
*e = S->top->data;
p = S->top;
S->top = S->top->next;
free(p);
S->count--;
return OK;
}
void Display(LinkStack *S)
{
int a =1;
while(!StackEmpty(S))
{
SElemType *e = (SElemType*)malloc(sizeof(SElemType));
Pop(S,e);
printf("%d->",*e);
free(e);
}
printf("\n");
}
int main()
{
LinkStack *S = (LinkStack *)malloc(sizeof(LinkStack));
Push(S,1);
Push(S,2);
Push(S,3);
Push(S,4);
Display(S);
}
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 10
typedef int Status;
typedef int SElemType;
typedef struct StackNode
{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
typedef struct LinkStack
{
LinkStackPtr top;
int count;
}LinkStack;
Status StackEmpty(LinkStack *S)
{
if(S->count == 0 )
return TRUE;
else
return FALSE;
}
Status Push(LinkStack *S,SElemType e)
{
LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode));
s->data = e;
s->next = S->top;
S->top = s;
S->count++;
return OK;
}
Status Pop(LinkStack *S,SElemType *e)
{
LinkStackPtr p;
if(StackEmpty(S))
return ERROR;
*e = S->top->data;
p = S->top;
S->top = S->top->next;
free(p);
S->count--;
return OK;
}
void Display(LinkStack *S)
{
int a =1;
while(!StackEmpty(S))
{
SElemType *e = (SElemType*)malloc(sizeof(SElemType));
Pop(S,e);
printf("%d->",*e);
free(e);
}
printf("\n");
}
int main()
{
LinkStack *S = (LinkStack *)malloc(sizeof(LinkStack));
Push(S,1);
Push(S,2);
Push(S,3);
Push(S,4);
Display(S);
}