怎么实现链队的入队和出队并输出的操作?

我用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;
    }
}

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^