#include <stdio.h>
#include <stdlib.h>
typedef struct node //创建节点结构体
{
int data;
struct node *next;
} Node;
Node *top; //创建栈顶指针(结构体指针)
Node *creat(int data,Node *next) //创建节点,top指针指向新建的节点
{
Node *node = malloc(sizeof(Node));
node -> data = data;
node -> next = next;
return node;
}
Node *dele(Node *node) //删除节点,top指针指向后一个节点
{
Node *next = node -> next;
free(node);
return next;
}
void initialize(Node **top) //初始化节点,使一开始top指向NULL
{
top = NULL;
}
void Push(int data,Node **top) //入栈
{
*top = creat(data,*top);
}
int Pop(Node **top) //出栈
{
int num = (*top)->data;
*top = dele(*top);
return num;
}
int empty(Node **top) //判空
{
return !(*top);
}
int main()
{
int i;
initialize(&top);
for(i=1;i<=10;i++) //将1-10分别压入栈中
{
Push(i,&top);
}
while(!empty(&top))
{
printf("%d ",Pop(&top)); //分别弹出
}
printf("\n");
return 0;
}
链表栈
最新推荐文章于 2022-10-22 15:56:05 发布