December 9, 2015 1:05 PM
第一步:定义一个队列类
class node
{
public:
int data; //存放数据
class node *next; //存放指针,指向下一个节点
};
class queue
{
public:
node *first; //头指针
node *rear; //尾指针
};
第二步:创建一个队列
queue *create() //创建队列
{
queue *qu = new(queue); //初始化队列,头尾指针均指向空
qu->first = NULL;
qu->rear = NULL;
return(qu);
}
第三步:入队
queue *insert(queue* qu, int x) //队列入队
{
node *newItem;
newItem = new(node);
newItem->data = x;
newItem->next = NULL;
if(qu->rear == NULL) //如果队列为空
{
qu->first = newItem;
qu->rear = newItem;
}
else
{
qu->rear->next = newItem;
qu->rear = newItem;
}
return(qu);
}
第四步:出队
queue *del(queue* qu) //队列出队
{
node *deleteItem;
if(qu->first == NULL) //判断队列是否为空
{
cout << "these is nothing to delete!!!" << endl;
}
else
{
deleteItem = qu->first;
cout << "the deleted data is : " << deleteItem->data << endl;
if(qu->first == qu->rear) //判断队列是否只有一个元素
{
qu->first = NULL;
qu->rear = NULL;
}
else
{
qu->first = qu->first->next;
}
}
return(qu);
}
第五步:主函数运行测试
int main(int argc, char** argv) {
queue *qu = create();
qu = insert(qu, 123);
qu = insert(qu, 456);
qu = del(qu);
qu = del(qu);
return 0;
}