链表栈的实现代码
#include <stdio.h>
#include <stdlib.h>
typedef struct Strack
{
int id;
struct Strack *pnext;
}STR,*PSTR;
void create(PSTR *head)
{
*head = (PSTR)malloc(sizeof(STR));
(*head)->pnext = NULL;
}
void pushStack(PSTR* top,int id)
{
PSTR pnew = *top;
PSTR ptemp = (PSTR)malloc(sizeof(STR));
ptemp->id = id;
ptemp->pnext = *top;
*top = ptemp;
}
void popStack(PSTR* top)
{
PSTR ptemp = (*top);
(*top) = (*top)->pnext;
free(ptemp);
}
int GetStack(PSTR top)
{
return top->id;
}
int main()
{
PSTR head = NULL;
create(&head);
PSTR top = head;
for (int i = 0; i < 10; i++)
{
pushStack(&top,i+1);
}
for (int i = 0; i < 10; i++)
{
printf("%d\n",GetStack(top));
popStack(&top);
}
getchar();
return 0;
}