摘要: 一、题目 编写支持双端队列的例程,插入与弹出操作均花费 O(1)时间二、解答 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的数据结构。 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 基本操作:在双端队列两端插入与删除。 ADT... 阅读全文
posted @ 2014-10-05 23:27 Leptus 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 一、题目 用一个数组实现三个(或多个)栈二、解答 用一个数组实现三个乃至多个栈,如果想使用一个数组构造两个栈的思想则行不通; 考虑使用静态链表,数组结点中存在两个域,关键字域与指示栈的前驱的游标,则可以使三个栈可以用一个数组表示; ADT的关键术语: Capacity: 数组的容量; S... 阅读全文
posted @ 2014-10-05 21:49 Leptus 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 一、题目 用一个数组A[ 1....N ]实现两个栈,除非数组的每一个单元都被使用,否则栈例程不能有溢出,注意PUSH和POP操作的时间应为O(1)。二、解法 对于一个数组,由它的两端作为栈底,栈向数组中间扩展。当数组中每个元素被用到时,栈满。三、代码struct Node;typedef No... 阅读全文
posted @ 2014-10-05 18:08 Leptus 阅读(499) 评论(0) 推荐(0) 编辑