struct Node;
typedef struct Node* pNode;
typedef pNode Stack;
struct Node
{
ElemType elem;
pNode next;
}
int IsEmpyt(Stack s)
{
return (s->next == NULL);
}
Stack CreateStack()
{
Stack s;
if( !(s = (pNode)malloc(sizeof(struct Node))))
{
perror("create error!");
}
else
{
s->next = NULL;
return s;
}
}
void Push(Stack s, ElemType elem)
{
pNode pTmpNode = (pNode) malloc(sizeof(struct Node));
if(pTmpNode == NULL)
{
FatalError("Out of space");
}
else
{
pTmpNode->elem = elem;
pTmpNode->next = s->next;
s->next = pTmpNode;
}
}
int Top(Stack s)
{
if(!IsEmpyt(s))
return s->next->elem;
else
perror("Empty stack");
}
void Pop(Stack s)
{
pNode pFirst;
if(IsEmpyt(s))
perror("Empty stack");
else
{
pFirst = s->next;
s->next = s->next->next;
free(pFirst);
}
}
栈的C语言实现源码
最新推荐文章于 2023-01-15 23:12:44 发布