ii沙漠

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、队列(Queue):是一种特殊的线性表(数据元素之间的关系是线性关系),其插入、删除分别在表的两端进行,一端只能插入,另一端只能删除。

2、术语

队首(front):进行删除的一端;

队尾(rear):进行插入的一端;

入队:在队尾插入一个元素;

出队:在队首删除一个元素;

3、特点

由于限制了插入、删除分别在两端进行,那么元素的操作顺序有“先进先出”或“后进后出”的特点(First In First Out-FIFO Last in Last Out-LILO)

4、操作

1)队列的初始化Iniqueue(Q):将队列置为空;

2)入队Enqueue(Q):即在队尾插入一个元素;

3)出队Dlqueue(Q):即在队首删除一个元素;

4)取队首元素Gethead(Q):访问队首元素;

5)判断队列是否空Empty(Q):判断队列是否为空;

6)求队列的大小Current_size(Q):求队列中元素个数;

7)队列清空Clear(Q):将队列清为空。

5、ADT

ADT Queue
{
    data structure:
    D={ai|ai∈DO i=2,3,4,...}
    R={N}
    N={<ai-1,ai>|ai-1,ai∈D0 i=2,3,4,...}
    D0某个对象
    operations:
    Iniqueue(Q);Enqueue(Q);Dlqueue(Q);
    Gethead(Q);Empty(Q);Current_size(Q);
    clear(Q);
}

 

6、存储方式:同一般线性表的顺序存储结构完全相同。但是由于在两端扣作,设两个指示器,(rear和front)

分别佛示队列的尾和首。

特别约定头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一位置!

空队列:rear=front=0

入队:rear=rear+1

出队:front=fornt+1

队列空:rear=front=0

 

7、循环队列的ADT

8、队列的链式存储结构

posted on 2014-04-13 21:32  ii沙漠  阅读(184)  评论(0编辑  收藏  举报