为链队列添加一组数据
#include<stdio.h>#include<stdlib.h>
#define len sizeof(LinkQueueNode)
typedef struct Node
{
int data;
struct Node* next;
}LinkQueueNode;
typedef struct
{
LinkQueueNode* f;
LinkQueueNode* l;
}LinkQueue;
void InitNode(LinkQueue *q)
{
q->f=(LinkQueueNode *)malloc(len);
if(q->f!=NULL)
{
q->l=q->f;
q->f->next=NULL;
}
}
void EnterQueue(LinkQueue *q,int a[],int x)
{
LinkQueueNode *NewNode;
for(int i=0;i<x;i++)
{
NewNode=(LinkQueueNode *)malloc(len);
if(NewNode!=NULL)
{
NewNode->data=a[i];
NewNode->next=NULL;
q->l->next=NewNode;
q->l=NewNode;
}
}
}
void PrintQueue(LinkQueue *q)
{
LinkQueueNode *s;
q->f=s;
for(;s!=NULL;s=s->next)
{
printf("%-3d",s->data);
}
printf("\n");
}
int main()
{
int x;
LinkQueueNode *NewNode;
LinkQueue q;
InitNode(&q);
printf("请输入队列的长度:\n");
scanf("%d",&x);
int a[x];
printf("请输入队列中的元素:\n");
for(int i=0;i<x;i++)
scanf("%d",&a[i]);
EnterQueue(&q,a,x);
printf("列中的元素为:\n");
PrintQueue(&q);
free(NewNode);
return 0;
}
编译没问题,执行报错。