#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "time.h"
typedef struct StackNode //栈中的每个节点
{
int data;
struct StackNode* next;
}StackNode;
typedef struct //栈
{
StackNode* top;//栈的顶节点,是一个指向节点的地址
int count;
}linkstack;
int initlist(linkstack* L)
{
L->top = (StackNode*)malloc(sizeof(StackNode));
L->count = 0;
L->top = NULL;
return 1;
}
int push(linkstack* L,int value)
{
L->count++;
StackNode* S;
S = (StackNode*)malloc(sizeof(StackNode));
S->data = value;
S->next = L->top;
L->top = S;
return 1;
}
int pop(linkstack* L)
{
int i, j;
j = L->count;
if (j == 0)
{
printf("栈为空");
return 0;
}
i = L->top->data;
StackNode* S;
S = L->top;
L->top = S->next;
free(S);
L->count--;
return i;
}
int seelist(linkstack L)
{
StackNode* S;
S = L.top;
while (S)
{
printf("%d ", S->data);
S = S->next;
}
printf("\n");
return 1;
}
int main()
{
int i;
linkstack L;
initlist(&L);
for (i = 0; i < 3; i++)
{
push(&L, i);
}
seelist(L);
pop(&L);
seelist(L);
pop(&L);
}
链栈C语言实现
最新推荐文章于 2024-01-24 13:58:30 发布