C语言数据结构中链队,我初始化了两个,确实一样的内容?代码和结果如下
时间: 2016-10-26来源:开源中国
前景提要
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是一样的搞不懂,求解。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行