- 博客(4)
- 收藏
- 关注
原创 大小堆的实现,删除,添加
大小堆的实现 删除 添加 最小堆:任一结点的关键码均小于等于它的左右孩子的关键码,位于堆顶结点的关键码最小 最大堆:任一结点的关键码均大于等于它的左右孩子的关键码,位于堆顶结点的关键码 最大 先建堆:利用二叉树建小堆方法 先找到第一个非叶子节点,然后检查它是否有左右叶子(都有选其小的),再和节点比较,若小于该节点,则交换这两个元素;接着把这个节点当作叶子,
2016-07-31 23:09:03 1095
原创 用两个栈实现对列 用两个队列实现栈
队列与栈的要求: 栈:先进栈的元素,后出栈;即后进栈,先出栈(后进先出) 队列:先进队列的元素,先出队列(先进先出); 用两个栈实现对列 用两个栈s1,s2,把元素先入栈到s1,然后再从s1中出栈放入s2(s2栈一定要为空); 添加新元素用s1入栈,出元素从s2(s2为空时,从s1栈导入s2中再出;不为空从s2出)出栈。 代码: template class Q
2016-07-30 22:55:53 309
原创 实现一个栈,要求push(入栈),pop(出栈),min(返回栈中的最小值)的时间复杂度为O(1);
1. 栈的基本操作 入栈(push); 出栈(pop); 查找栈顶(top); 栈的元素个数(size); 检查栈是否为空(empty); 2.时间复杂度为o(1); 方法一 每次入栈时,先把元素入栈 ,然后和栈顶(s.top)与入栈的元素比较,把较小(相等)的的再入栈一次;
2016-07-30 22:11:11 2162
原创 日常代码
1. 打印100~200 之间的素数 #include int main() { int p, d; int i; for (p = 100; p { i = 1; for (d = 2; d { if (p%d == 0) i = 0; } if (i != 0) printf("%i ", p); } printf("\n"); g
2016-03-29 12:19:47 272 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人