diff --git a/上课Demo/7.队列的链式存储实现.c b/上课Demo/7.队列的链式存储实现.c index ab51396..8ce55d0 100644 --- a/上课Demo/7.队列的链式存储实现.c +++ b/上课Demo/7.队列的链式存储实现.c @@ -7,16 +7,16 @@ struct Node{ struct Node *Next; }; struct QNode{ - struct Node *rear; // ָβ - struct Node *front; // ָͷ + struct Node *rear; // 指向队尾结点 + struct Node *front; // 指向队头结点 }; -Queue CreateQueue(); // ʼ -void AddQ(Queue Q,ElementType item); // -ElementType DeleteQ(Queue Q); // -int IsEmpty(Queue Q); // ж϶ǷΪ +Queue CreateQueue(); // 初始化队列 +void AddQ(Queue Q,ElementType item); // 入队 +ElementType DeleteQ(Queue Q); // 出队 +int IsEmpty(Queue Q); // 判断队列是否为空 -// ʼ +// 初始化 Queue CreateQueue(){ Queue Q; Q = (Queue)malloc(sizeof(struct QNode)); @@ -25,36 +25,36 @@ Queue CreateQueue(){ return Q; } -// ǷΪ +// 是否为空 int IsEmpty(Queue Q){ return (Q->front == NULL); } -// +// 入队 void AddQ(Queue Q,ElementType item){ struct Node *node; node = (struct Node *)malloc(sizeof(struct Node)); node->Data = item; node->Next = NULL; - if(Q->rear==NULL){ //ʱп + if(Q->rear==NULL){ //此时队列空 Q->rear = node; Q->front = node; - }else{ //Ϊ - Q->rear->Next = node; // - Q->rear = node; // rear Ȼ + }else{ //不为空 + Q->rear->Next = node; // 将结点入队 + Q->rear = node; // rear 仍然保持最后 } } -// +// 出队 ElementType DeleteQ(Queue Q){ struct Node *FrontCell; ElementType FrontElem; if(IsEmpty(Q)){ - printf("п"); + printf("队列空"); return 0; } FrontCell = Q->front; - if(Q->front == Q->rear){ // ֻһԪ + if(Q->front == Q->rear){ // 队列中只有一个元素 Q->front = Q->rear = NULL; }else{ Q->front = Q->front->Next; @@ -67,15 +67,15 @@ ElementType DeleteQ(Queue Q){ int main(){ Queue Q; Q = CreateQueue(); - printf("5\n"); + printf("入队5\n"); AddQ(Q,5); - printf("4\n"); + printf("入队4\n"); AddQ(Q,4); - printf("4\n"); + printf("入队3\n"); AddQ(Q,3); - printf("%d\n",DeleteQ(Q)); - printf("%d\n",DeleteQ(Q)); - printf("%d\n",DeleteQ(Q)); + printf("出队%d\n",DeleteQ(Q)); + printf("出队%d\n",DeleteQ(Q)); + printf("出队%d\n",DeleteQ(Q)); printf("%d\n",DeleteQ(Q)); return 0; }