- 博客(12)
- 收藏
- 关注
原创 最小生成树,Kruskal
//最小生成树,Kruskaltemplate<class T>bool Graph<T>::Kruskal(PathData* E,int ne){ Heap<PathData> H; int nv=ne+1; int i,j,id,*DS=new int [nv]; for(i=0;i<nv;i++) { DS[i]=-1; }...
2018-11-11 11:55:11
210
原创 最小生成树Prim算法
template<class T>bool Graph<T>::Prim(const T& v,PathData* E,int ne){ int s=FindNode(v); if(s==-1) { return 0; } PathData item; double cost; int id=0; for(int i=0;i<=ne;...
2018-11-11 11:52:21
295
转载 使用位运算来实现全排列
刘汝佳,使用位运算来实现全排列#include<cstdio>using namespace std;void print_subset(int n, int s) { for(int i = 0; i < n; i++) if(s&(1<<i)) printf("%d ", i); // 这里利用了C语言“非0值都为真”的规定 pr...
2018-10-22 22:29:40
1090
原创 完整哈夫曼编码
哈夫曼编码是应用堆实现前缀编码,是的使用频率越高的字符,译码的长度越短。注,写出编码函数 code和tocode 的关键是利用深搜和准确记录经过的路径,我使用的是一个char[] a字符数组记录路径,一个整数 n 记录当前经过的路径数,如果走错则将n–,表示后退,最后遍历a[n]即可。1、主文件#include&lt;iostream&gt;#include"BTNode.h"#inc...
2018-10-13 01:48:08
689
原创 堆排序算法
**堆排序是时间复杂的为 nlog(n)的算法,性能较好,不用开辟新的空间,值得我们好好学习。**#include&amp;lt;iostream&amp;gt;using namespace std;template&amp;lt;class T&amp;gt;void PercolateDown(T* a,int pos,int size){ int p=pos; T temp=a[p]; i
2018-10-10 23:17:36
153
原创 堆的构建和测试
1.堆的构建代码#include<vector> using namespace std;template<class T>class Heap{ vector<T> vec; int size; void BuildHeap(void){ for(int i=size/2-1;i>=0;i--) PercolateDown...
2018-10-09 22:25:37
164
原创 JS使用forEach()遍历数组
1、使用匿名函数var donuts = [ { type: "Jelly", cost: 1.22 }, { type: "Chocolate", cost: 2.45 }, { type: "Cider", cost: 1.59 }, { type: "Boston Cream", cost: 5.99 }];donuts.forEach(function...
2018-10-07 22:04:05
13887
原创 java使用if判断而导致编译器提示无返回值(LeetCode617为例)
1、看一种正确写法public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { if (t1==null&&t2==null) { return null; } else if(t2==null&&t1!=null) { return t1; ...
2018-10-07 11:30:27
1008
1
原创 二叉树的三种非递归遍历算法
template<class T>//中序遍历递归算法 void InOrderN(BTNode<T>* t){ if(!t) return; stack<BTNode<T>*> s; while(t||!s.empty()) { if(!t) { BTNode<T>* a; a=s.top(); ...
2018-10-01 17:43:38
556
原创 二叉树的三种递归遍历算法
前序遍历template&lt;class T&gt;//前序遍历递归算法 void PreOrder(BTNode&lt;T&gt;* t){ if(!t) return; cout&lt;&lt;t-&gt;data; if(t-&gt;left) PreOrder(t-&gt;left); if(t-&am
2018-10-01 17:13:58
1532
原创 二叉树的层序遍历
在这里插入代码片@TOCtemplate&lt;class T&gt;//层序遍历 void Level(BTNode&lt;T&gt;* t){ if(!t) return; queue&lt;BTNode&lt;T&gt;*&gt; q; q.push(t); while(!q.empty()) { BTNode&lt;
2018-10-01 17:00:45
121
原创 将一个长整数转换为日期的简化算法
Date(long a) { int i=1; while(a&gt;Yeaydays(i)) { a-=Yeaydays(i); i++; } y=i; i=1; //cout&lt;&lt;"a="&lt;&lt;
2018-06-26 22:41:23
2390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人