![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
KayeJohn
爱代码 爱学习 爱生活
展开
-
两个栈实现一个队列
思路:对于两个栈实现一个队列,其实也很简单,只要弄清楚如何合作两个栈就很好写代码了,首先把一个栈当做入队的容器。即记为栈1,此时该入栈就相当于入队,但是出队的时候就有些麻烦了,首先把栈1的元素放入栈2,取出战二的栈顶即实现栈,最后一步再栈二放入栈1,这样就实现了出队。代码:#include <iostream>using namespace std;#define MAXSIZE 20typ原创 2017-09-16 15:19:54 · 132 阅读 · 0 评论 -
链表翻转的是三种方法
翻转链表的三种方法每次遍历从最后一个节点插入最前面使用三个指针原地不动翻转链表递归法翻转链表 接下来进行一一叙述(1)对于第一中方法比较笨拙,思路是:首先遍历到链表的最后一个节点,将最后一个节点插入头节点的后面,接着循环上述操作一一进行插入,知道只剩下一个节点为止。void ReserveList(pListNode pHead){ pListNode p = pHead;原创 2017-09-22 16:39:56 · 1237 阅读 · 0 评论 -
哈夫曼编码
今天中秋节,同学都回家了,自己离家太远待在宿舍无聊就看看哈夫曼代码,顺手写了写,特此博客一篇,望多多指教:对一组数进行哈夫曼树的构建:假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,原创 2017-10-04 15:27:11 · 466 阅读 · 0 评论 -
简单的KMP算法
虽然题目声称KMP简单,但只是对于理解了的人而言的,但是对于还没有理解的人来说,KMP算法确实是非常难的,但是不要紧,我相信通过我的介绍你会理解的,但是个人认为,不论什么比较难理解的算法,如果直接给你讲,即使讲的方法再简单,但是你没有去自己思考,那也是理解不了的,就像做一道特别难的数学题,你想了几个小时还是没有做出来,但是这时候当别人给你说的时候,你可能会豁然开朗,这是因为你前面几个小时的思考起到的原创 2017-11-11 12:19:07 · 666 阅读 · 0 评论