双链表又称队列,这是一种常见且有用的数据结构,例如服务行业管理中使用这种数据结构的程序数不胜数,当然游戏方面这种结构也大有用武之地。
队列数据结构可视图形如下:
(a)视图为当前队列情况,(b)视图为删除一个节点后的情况,由图可知队列是一种先进先出的结构,与栈结构相反。
队列模板如下:
/* queue.h -- 队列接口 */
#ifndef _QUEUE_H
#define _QUEUE_H
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
/* 队列最大数 */
#define MAXQUEUE 10
/* custom module 自定义模块 */
typedef struct item {
char key;
} Item;
/* 可以访问到下一个节点 */
typedef struct node {
Item item;
struct node * next;
} Node;
/* 队列定义 */
typedef struct queue {
Node * front; // 指向队列的首部
Node * rear; // 指向队列的尾部
int items;
} Queue;
void InitQueue(Queue * queue);
bool QueueIsFull(Queue * queue);
bool QueueIsEmpty(Queue * queue);
bool EnQueue(Item item, Queue * pq);
bool DeQueue(Item * it