我用codeblocks写的代码,但是错误太多了。下面是我的代码,哪里有问题,麻烦改正一下。希望在我写的基础上进行修改。
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
//定义队列的结构体部分
typedef struct node
{
char data;
struct node *next;
}linknode;
typedef struct
{
linknode* front;
linknode* rear;
}link;
int enter(link *q,char x)
{
linknode *newnode;
newnode=(linknode *)malloc(sizeof(linknode));
if(newnode!=NULL)
{
newnode->data=x;
newnode->next=NULL;
q->rear->next=newnode;
q->rear=newnode;
return(TRUE);
}
else
return(FALSE);
}
//队列的出队子函数
link del(link *q)
{
linknode *p;
if(q->front==q->rear)
printf("OK");
p=q->front->next;
q->front->next=p->next;
if(q->rear==p)
q->rear=q->front;
}
//主函数部分来了,感觉这块是真的有点难
void main()
{
char x;
linknode q;
q->front=(linknode*)malloc(sizeof(linknode));
if(q->front!=NULL)
{
q->rear=q->front;
q->front->next=NULL;
return(TRUE);
}
else return(FALSE);
while(q!=NULL)
{
scanf("%c",&x);
if(x=='$')
break;
enter(q,x);
}
while(front!=rear)
{
q=del(q);
printf("%c",q->data);
q=q->next;
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: