链队存储结构,我感觉是入队函数出了问题!不管我输入什么,输出的时候也就只会出现第一个输入的数!不过还希望大家帮我解决输出的控制,就是输入多少元素,就输出多少个元
#include<stdio.h>#include<malloc.h>
#define maxsize 100
typedef struct node1
{
char data;
struct node1 *next;
}LINKQLIST;
typedef struct
{
LINKQLIST *front,*rear;
}production;//生产
void initlinkqueuep(production *q)//初始化
{
q->front=(LINKQLIST *)malloc(sizeof(LINKQLIST));
(q->front)->next=NULL;
q->rear=q->front;
}
char getlinkfrnetp(production *q)//数据读取
{
char v;
if(q->front==q->rear)
{
printf("没有生产计划\n");
return 0;
}
else if(q->front->data=NULL)
return 0;
else
{
v=(q->front)->next->data;
printf("%c",v);
(q->front)->data=(q->front)->next->data;
}
return v;
}
void enlinkqueuep(production *q,char x)//插入数据
{
(q->rear)->next =(LINKQLIST *)malloc(sizeof(LINKQLIST));
q->rear=(q->rear)->next;
q->rear->data=x;
(q->rear)->next=NULL;
}
void main()
{
production q;
int i;
char ch[maxsize];
initlinkqueuep(&q);
for(i=0;i<maxsize;i++)
{
scanf("%c",&ch[i]);
enlinkqueuep(&q,ch[i]);
if(ch[i]='\n')
break;
}
for(i=0;i<maxsize;i++)
{
getlinkfrnetp(&q);
}
printf("\n");
}