码迷,mamicode.com
首页 > 编程语言 > 详细

c语言实现基本的数据结构(五) 单链队列

时间:2017-10-28 11:04:16      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:数据   c语言   queue   temp   efi   清空   sizeof   出队   结构   

#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>


#define MaxQueueSize 100
// TODO:  在此处引用程序需要的其他头文件
struct Node{
    int data;
    Node* next;
};
struct Queue{
    Node* front;
    Node* rear;
};
//初始化队列
bool Init_Queue(Queue* q){
    q->front = q->rear = (Node*)malloc(MaxQueueSize*sizeof(Node));
    if (!q->front) return false;
    q->front->next = NULL;
    return true;
}
//清空队列
bool Clear_Queue(Queue* q){
    q->front = q->rear;
    return true;
}
//销毁队列
bool Destroy_Queue(Queue* q){
    Node* temp = q->front;
    while (q->front != q->rear){
        temp = q->front->next;
        free(q->front);
        q->front = temp;
    }
    q->front = q->rear = NULL;
    return true;
}
//入队
bool EnQueue(Queue* q, int value){
    Node* n = (Node*)malloc(sizeof(Node));
    n->next = NULL;
    n->data = value;

    q->rear->next = n;
    q->rear = n;
    return true;
}
//出队,返回队头元素的值
int DeQueue(Queue* q){
    int temp;
    if (q->front == q->rear) exit(-1);
    Node* p = q->front;
    temp = p->next->data;
    q->front = p->next;
    if (p == q->rear) q->front = q->rear;
    free(p);
    p = NULL;
    return temp;
}
//打印队列
void Print_Queue(Queue q){
    if (q.front == q.rear) printf("空队列\n");
    while (q.front != q.rear){
        printf("%d\n", DeQueue(&q));
    }
}

 

c语言实现基本的数据结构(五) 单链队列

标签:数据   c语言   queue   temp   efi   清空   sizeof   出队   结构   

原文地址:http://www.cnblogs.com/xin1998/p/7745912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!