队列的定义
队列也是线性表,只能在头尾两端进行操作。 主要特征:仅从队列末端(仅将称为“入队”(enQueue )队列末端的元素从队列末端添加)中删除元素,将其称为队列目标定位元素。 firstinfirstout ) FIFO )
接口设计
根据队列的定义按照下表设计接口。函数
释义
int size () )
元素的数量
布尔表示法(
是否是空的
void清除器() )
清空
voidenqueue (电子元素) )。
进入队伍
e德队列() )
离开队伍
e前端() )
获取队列的头元素
e需要通用型
实现
查看队列,操作其头部和尾部,因此在从探索的动态数组、链表中进行选择时,可以优先选择双向链表。公共类队列
私有列表=新链接列表(;
//*
* *元素数
* * @返回
*/
int size ()
返回列表. size (;
}
//*
* *是否为空
* * @返回
*/
布尔表示法()。
返回列表. isempty (;
}
//*
* *清除
*/
声音清除器()
list.clear (;
}
//*
* *入队
* * @ param元件
*/
声音元素{2}
列表添加(元素;
}
//*
* *离开队伍
* * @返回
*/
e队列()
返回列表.移除(0;
}
//*
* *获取队列头元素
* * @返回
*/
e前端()
返回列表. get (0;
}
(}
双端队列(Deque)
双侧队列可以在队列的两端操作入队和出队。 所以添加了相关的接口函数
释义
voidenqueuerear (电子元件) )。
从队伍的末尾入伍
e队列前端(
从队伍的前头离开队伍
voidenqueuefront (电子元件) )。
从队伍的前头离开队伍
e队列读() )
从队伍的末尾离开队伍
e前端() )
获取队列的头元素
e读取() )
获取队列的最后一个元素
实现
公共等级队列私有链接列表=新建链接列表(;
//*
* *元素数
* * @返回
*/
int size ()
返回列表. size (;
}
//*
* *是否为空
* * @返回
*/
布尔表示法()。
返回列表. isempty (;
}
//*
* *清除
*/
声音清除器()
list.clear (;
}
//*
* * *从队伍开头入伍
* * @ param元件
*/
voidenqueuefront (电子元件) {
列表.添加(0,元素);
}
//*
从队伍的末尾进入队伍
* * @ param元件
*/
voidenqueuerear (电子元件) {
列表添加(元素;
}
//*
从队伍的前头离开队伍
*/
e队列前端
返回列表.移除(0;
}
//*
从队伍的末尾离开队伍
*/
e队列读()
返回列表.移除(列表.大小) (- 1 );
}
//*
* *获取队列的开头元素
* * @返回
*/
e前端()
返回列表. get (0;
}
//*
获取队列的最后一个元素
* * @返回
*/
E rear ()。
返回列表.获取(列表大小) (-1 );
}
}