本周学习的相关知识
#include<stdio.h> #include<stdlib.h> //1 链队的定义==================== typedef int ElemType; typedef struct LNode//结点定义 { ElemType data;//数据域 LNode *next;//指针域 }LNode; typedef struct //链队定义 { LNode *front;//队首指针 LNode *rear;//队尾指针 }QUEUE; //2 链队的基本操作================ //2.1 初始化 void InitQueue(QUEUE *Q) { Q->front=(LNode *)malloc(sizeof(LNode)); Q->rear=Q->front; Q->front->next=0; } //2.2 入队 void EnQueue(QUEUE *Q, ElemType e) { LNode *p; p=(LNode *)malloc(sizeof(LNode));//产生一新结点 p->data=e;//存储新元素 p->next=0; Q->rear->next=p; Q->rear=p; } //2.3 出队 void DeQueue(QUEUE *Q, ElemType *e) { LNode *p; if(Q->front==Q->rear) { printf("队列是空的。\n"); return; } *e=Q->front->next->data; p=Q->front->next; Q->front->next=p->next; if(p==Q->rear) Q->rear=Q->front; free(p); } //3 主函数========================== void main() { int i; QUEUE duilie; InitQueue(&duilie); for(i=1; i<=10; i++) EnQueue(&duilie, 10*i); ElemType e; while(duilie.front!=duilie.rear) { DeQueue(&duilie, &e); printf("%d ",e); } }