版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mr_Qin_AC/article/details/83444296
#include<stdio.h>
#include<stdlib.h>
#define N 105
int a[N];
struct node
{
int data;
node *next;
}*h;
void LinkStack()//用链表实现栈
{
node *s;
int n;
printf("请输入需要入栈元素的数量: ");
scanf("%d",&n);
printf("请输入需要入栈的元素: ");
h=NULL;
s=h;
while(n--)
{
s=(node *)malloc(sizeof(node));
scanf("%d",&s->data);
s->next=h;
h=s;
}
printf("输出栈中的元素: ");
while(h!=NULL)
{
printf("%d ",h->data);
h=h->next;
}
printf("\n");
return ;
}
void LinkQueue()//用链表实现队列
{
node *s,*e;
int n;
h=(node *)malloc(sizeof(node));
s=h;
printf("请输入需要入队的元素的数量: ");
scanf("%d",&n);
printf("请输入需要入队的元素: ");
while(n--)
{
e=s;
s=(node *)malloc(sizeof(node));
scanf("%d",&s->data);
e->next=s;
s->next=NULL;
}
printf("输出队列中的元素: ");
h=h->next;
while(h!=NULL)
{
printf("%d ",h->data);
h=h->next;
}
printf("\n");
return ;
}
int main()
{
LinkStack();
LinkQueue();
printf("谢谢使用!\n");
return 0;
}