求大手帮我把两个题目的源代码做出来......
[local]2[/local][local]1[/local]1. 编写优先队列数据(priority_queue)类型。优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有1) 查找;2) 插入一个新元素;3) 删除.在最小优先队列(min priority queue)中,查找操作用来搜索优先权最小的元素,删除操作用来删除该元素;对于最大优先队列(max priority queue),查找操作用来搜索优先权最大的元素,删除操作用来删除该元素.优先权队列中的元素可以有相同的优先权,查找与删除操作可根据任意优先权进行。由于这是一个queue,所以只允许在底端加入元素,并从顶端取出元素,除此之外别无其它存取元素的途径。priority_queue 带有权值观念,其内的元素并非依照被推入的次序排列,而是自动依照元素的权值排列(通常权值以实值表示)。要求:实现优先队列的初始化,查找,插入,删除操作,并且控制其查找,插入,删除操作的算法时间复杂度为O(logn)。
2. 阅读STL(Standard Template Library)中有关常见的抽象数据类型的实现源码并应用。
抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。在STL中实现了堆栈(stack)、队列(queue)、堆(heap)、优先队列(priority-queue)等抽象数据类型,每种类型都具有常用的操作。
要求:选其中一种抽象数据类型阅读其实现原理(不局限于以上列出的数据类型),其后根据自己的理解书写阅读心得,并就自己选择的数据类型举一个应用例子实现。所选择例子可以是北大OJ上的题目,也可以是自己想到的合适应用实例。不管是何种情况,要有相应的源码实现。
有关STL的相应介绍可参考附件的《STL源码剖析》。
求大手帮我把两个题目的源代码做出来......