#include<iostream>
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define VARTYPE char //默认存放char类型
using namespace std;
struct myNode;
typedef struct myNode Node;
typedef Node* _Stack;
typedef Node* PtrToNode;
struct myNode
{
VARTYPE data;
PtrToNode next;
};
void _push(_Stack &T,VARTYPE x)
{
PtrToNode tmp = (PtrToNode)malloc(sizeof(Node));
if(tmp==NULL)
perror("malloc failed");
else
{
tmp->data = x;
tmp->next = T;
T = tmp;
}
}
void _pop(_Stack &T)
{
PtrToNode tmp;
tmp = T;
T = T->next;
free(tmp);
}
int _isempty(_Stack &T)
{
return T->next==NULL;
}
void _delstack(_Stack &T)
{
while(!_isempty(T))
{
_pop(T);
}
}
VARTYPE _top(_Stack &T)
{
return T->data;
}
_Stack create(_Stack &T)
{
T = (PtrToNode)malloc(sizeof(Node));
T->next = NULL;
return T;
}
int main()
{
_Stack T = create(T);
_push(T,'a');
_push(T,'b');
_push(T,'c');
_pop(T);
_pop(T);
_pop(T);
_delstack(T);
return 0;
}
网友评论