#include<stdio.h>
#include<stdlib.h>
typedef int datetype ;
typedef struct mqm
{
datetype date;
struct mqm* next;
}zjr;
void start(zjr**head)//初始化
{
*head=(zjr*)malloc(sizeof(zjr));
(*head)->next=NULL;
}
int kong(zjr* head)//判断是否为空
{
if(head->next==NULL)return 0;
else return 1;
}
void ruzhan(zjr* head,datetype x)//入栈
{
zjr* p;
p=(zjr*)malloc(sizeof(zjr));
p->date=x;
p->next=head->next;
head->next=p;
}
int chuzhan(zjr* head,datetype* x)//出栈
{
zjr* p=head->next;
if(p==NULL)
{
printf("堆栈为空!!");
return 0;
}
head->next=p->next;
*x=p->date;
free(p);
return 1;
}
int gettop(zjr* head,datetype*x)//得到栈顶
{
zjr* p=head->next;
{
if(p==NULL)
{
printf("堆栈为空!!");
return 0;
}
}
*x=p->date;
return 1;
}
void destory(zjr* head)//撤销堆栈
{
zjr* p1,* p2;
p1=head;
while(p1!=NULL)
{
p2=p1;
p1=p1->next;
free(p2);
}
}
int main()
{
zjr* head;
int i,x;
start(&head);
for(i=0;i<10;i++)
{
ruzhan(head,i);
}
for(i=0;i<10;i++)
{
chuzhan(head,&x);
printf("%d ",x);
}
}
c语言 链式堆栈
最新推荐文章于 2024-05-03 14:23:51 发布