赞
踩
typedef int ElemType; #define MAX_SIZE 10 typedef struct Queue { ElemType arr[MAX_SIZE]; int front;//队头指针,存的是下标 int rear;//队尾指针 }Queue,*pQueue; void init(pQueue pqu); int full(pQueue pqu); int enqueue(pQueue pqu, ElemType val); int empty(pQueue pqu); int dequeue(pQueue pqu); int front(pQueue pqu); int back(pQueue pqu);
#include<stdio.h> #include"Queue.h" void init(pQueue pqu) { if (pqu != NULL) { pqu->front = pqu->rear = 0; } } int full(pQueue pqu) { return (pqu->rear + 1) % MAX_SIZE == pqu->front; } int enqueue(pQueue pqu, ElemType val) { if (full(pqu)) { return 0; } pqu->arr[pqu->rear] = val; pqu->rear = (pqu->rear + 1) % MAX_SIZE; return 1; } int empty(pQueue pqu) { return pqu->front == pqu->rear ? 1 : 0; } int dequeue(pQueue pqu) { if (empty(pqu)) { return 0; } pqu->front = (pqu->front + 1) % MAX_SIZE; return 1; } int front(pQueue pqu) { if (empty(pqu)) { return 0; //C++中操作,要加头文件#include<iostream> //throw std::exception("queue is empty!"); } return pqu->arr[pqu->front]; } int back(pQueue pqu) { if (empty(pqu)) { return 0; } //return pqu->arr[pqu->rear - 1];//error return pqu->arr[(pqu->rear + MAX_SIZE - 1) % MAX_SIZE]; }
#include<stdio.h> #include"Queue.h" int main() { Queue qu; init(&qu); enqueue(&qu, 3); enqueue(&qu, 7); enqueue(&qu, 6); enqueue(&qu, 4); enqueue(&qu, 2); int refront = front(&qu); printf("fr:%d\n", refront); int reback = back(&qu); printf("re:%d\n", reback); dequeue(&qu); refront = front(&qu); printf("fr:%d\n", refront); reback = back(&qu); printf("re:%d\n", reback); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。