标签:size clear string data void == std code ++
queue.h
#ifndef QUEUE_ #define QUEUE_ #define SIZE 10 typedef int data_t; typedef struct head{ data_t data[SIZE]; int front; int rear; }queue_t; queue_t *queue_creat(); int queue_is_empty(queue_t *head); int queue_is_full(queue_t *head); void queue_clear(queue_t *head); int queue_en(queue_t *head,data_t data); data_t queue_de(queue_t *head); void queue_show(queue_t *head); void queue_detory(queue_t **head); #endif
queue.c
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <strings.h> #include "queue.h" queue_t *queue_creat() { queue_t *head = (queue_t *)malloc(sizeof(queue_t)); bzero(head,sizeof(queue_t)); head->front = 0; head->rear = 0; return head; } int queue_is_empty(queue_t *head) { return head->front == head->rear; } int queue_is_full(queue_t *head) { return head->rear - head->front == SIZE; } void queue_clear(queue_t *head) { head->rear = head->front; } int queue_en(queue_t *head,data_t data) { if(queue_is_full(head)) { printf("queue is fulll\n"); return -1; } head->data[head->rear%SIZE] = data; head->rear++; return 0; } data_t queue_de(queue_t *head) { if(queue_is_empty(head)) { printf("queue is empty\n"); return -1; } data_t data = head->data[head->front%SIZE]; head->front++; return data; } void queue_show(queue_t *head) { int i; for(i=head->front;i<head->rear;i++) { printf("%d\t",head->data[i%SIZE]); } printf("\n"); } void queue_destory(queue_t **head) { free(*head); *head = NULL; }
main.c
#include <stdio.h> #include "queue.h" int main() { queue_t *head = queue_creat(); int n=10; while(n--) { queue_en(head,n+1); } queue_show(head); queue_destory(&head); return 0; }
标签:size clear string data void == std code ++
原文地址:http://www.cnblogs.com/Malphite/p/7571990.html