数据结构C语言版有个问题请教各位,万分感谢

#include
#include
#include
typedef struct Node
{
int data;
int *next;
} QNode,*QueuePtr;
typedef struct qwe{
int *rear,*front;
}LinkQueue;
int InitQueue(LinkQueue &Q)//置空链
{
Q.rear=Q.front=(int *)malloc(sizeof(QNode));
if(!Q.front) return -1;
Q.front->next=NULL;
return 1;
}
int EnQueue (LinkQueue &Q, int e)//入
{
QNode p;
p=(QNode)malloc(sizeof(QNode));
if(!p) return -1;
p->data=e;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return 1;
}
int DeQueue(LinkQueue &Q, int &e) //出
{
QNode p;
if (Q.front==Q.rear) return -1;
p=Q.front->next;
e=p.data;
Q.front->next=p.next;
if (Q.front->next==NULL)Q.rear=Q.front ;
free(p);
return 1;
}
main
{
int e;
QNode one;
LinkQueue aaa;
InitQueue(one);
EnQueue (one,e);
DeQueue(one,e);
}

1个回答

 #include<stdio.h>
#include<string.h>
#include<malloc.h>
typedef struct Node
{
int  data;
struct Node *next;
} QNode,*QueuePtr;
typedef struct qwe{
struct Node *rear,*front;
}LinkQueue;
int InitQueue(LinkQueue &Q)//置空链
{
Q.rear=Q.front=(QNode *)malloc(sizeof(QNode));
if(!Q.front) return -1;
Q.front->next=NULL;
return 1;
}
int EnQueue (LinkQueue &Q, int e)//入
{
QNode * p;
p=(QNode *)malloc(sizeof(QNode));
if(!p) return -1;
p->data=e;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return 1;
}
int DeQueue(LinkQueue &Q, int &e) //出
{
QNode * p;
if (Q.front==Q.rear) return -1;
p=Q.front->next;
e=p->data;
Q.front->next=p->next; 
if (Q.front->next==NULL)Q.rear=Q.front ;
free(p);
return 1;
}
int main()
{
int e=123;
LinkQueue aaa;
InitQueue(aaa);
EnQueue(aaa,e);
DeQueue(aaa,e);
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问