前景提要
HDC调试需求开发(15万预算),能者速来!>>> #include <stdio.h>#include <malloc.h> #define TRUE 1 #define FALSE 0 typedef struct Node{ int data;//数据域 struct Node *next;//指针域 }LinkQueueNode; typedef struct { LinkQueueNode *front; LinkQueueNode *rear; }LinkQueue; LinkQueue* InitQueue() { LinkQueue *Q; // Q=(LinkQueue*)malloc(sizeof(LinkQueue)); Q->front=(LinkQueueNode*)malloc(sizeof(LinkQueueNode)); Q->rear=Q->front; Q->front->next=NULL; return Q; } int EnterQueue(LinkQueue *Q,int x) { /* 将数据元素x插入到队列Q中 */ LinkQueueNode *NewNode; NewNode=(LinkQueueNode *)malloc(sizeof(LinkQueueNode)); if(NewNode!=NULL) { NewNode->data=x; NewNode->next=NULL; Q->rear->next=NewNode; Q->rear=NewNode; return (TRUE); } else return (FALSE); /* 溢出!*/ } int DeleteQueue(LinkQueue *Q,int *x) { /* 将队列Q的队头元素出队,并存放到x所指的存储空间中 */ LinkQueueNode *p; if(Q->front==Q->rear) return(FALSE); p=Q->front->next; Q->front->next=p->next; /* 队头元素p出队 */ if(Q->rear==p) /* 如果队中只有一个元素p,则p出队后成为空队 */ Q->rear=Q->front; *x=p->data; free(p); /* 释放存储空间 */ return(TRUE);
}
int main(){
LinkQueue *A=InitQueue();
LinkQueue *B=InitQueue();
EnterQueue(A,1);
EnterQueue(A,2);
EnterQueue(B,3);
EnterQueue(B,4);
int a,e;
DeleteQueue(B,&a);
printf("%d ",a);
DeleteQueue(A,&e);
printf("%d ",e);
return 0;
}
//结果应该是3 1,但是确实1 2 所以我推测 A ,B是一样的搞不懂,求解。