C语言 表、栈和队列详解及实例代码

2020-01-06 16:46:08王冬梅

队列ADT

  像栈一样,队列也是一种表,然而,使用队列时插入在一端进行而删除则在另一端进行。队列的基本操作时Enqueue(入队)和Dequeue(出队),入队是指在表的末端rear插入一个元素,而出队是删除(或者返回)在表的开头front的元素。

  如同栈的情形一样,栈的实现可以用指针和数组的方式,数组的方式笔者同样在之前做过介绍,今次使用单链表的方式实现。

  首先,定义队列的结构:


struct Queue 
{ 
 ElementType Element; 
 Queue *Next; 
}; 

  队列ADT的主要操作:


Queue *CreateQueue() 
{ 
 Queue *p = new Queue; 
 p->Next = NULL; 
 return p; 
} 
void Enqueue(Queue *rear, ElementType X) 
{ 
 Queue *p = new Queue; 
 p->Element = X; 
 rear->Next = p; 
 rear = p; 
} 
ElementType Dequeue(Queue *front) 
{ 
 Queue *p = front; 
 ElementType e = front->Element; 
 front = front->Next; 
 delete p; 
 return e; 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


注:相关教程知识阅读请移步到C++教程频道。