#include<stdio.h>
#include<malloc.h>
typedef struct node
{
int data;
node* next;
}Linkstack;
int Initstack(Linkstack& L)
{
//Linkstack* p = (Linkstack*)malloc(sizeof(Linkstack));
//if (!p)
//{
// printf("创建链式栈失败\n");
// return -1;
//}
//p->next = NULL;
//L.next = p; //创建头结点
//链式栈不需要头指针
L.next = NULL;
return 0;
}
int Push(Linkstack& L) //链式栈————从栈顶入和栈顶出
{
printf("请输入你想入栈的元素\n");
int a=1;
scanf_s("%d",&a);
Linkstack* p = (Linkstack*)malloc(sizeof(Linkstack));
if (!p)
{
printf("创建链式栈失败\n");
return -1;
}
p->data = a;
p->next = L.next;
L.next= p;
return 0;
}
int Pop(Linkstack& L) //链表头部是栈顶
{
if (L.next == NULL)
{
printf("栈为空\n");
return -1;
}
Linkstack* p = L.next;
int a =p->data;
printf("出栈元素为:%d", a);
L.next = L.next->next;
return 0;
}
int Getelem(Linkstack& L)
{
if (L.next == NULL)
{
printf("栈为空\n");
return -1;
}
printf("栈顶元素为:%d", L.next->data);
return L.next->data;
}
int main()
{
Linkstack L; //顺序栈
Initstack(L);
Push(L);
Pop(L);
Getelem(L);
return 0;
}
c语言实现链式栈的存储
最新推荐文章于 2024-07-02 17:44:31 发布