![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
Howard_Hua
这个作者很懒,什么都没留下…
展开
-
C++实现红黑树与验证
#include<iostream> #include<stack> #include<vector>using namespace std; const bool black = 0; const bool red = 1; struct RBNode { int key; bool color; ...原创 2015-08-24 14:23:54 · 345 阅读 · 0 评论 -
找出n个整数中最小的m个数(n>>m)
1、如果n个数是不重复的,可以先找出第m大的数,再遍历整个数组,小于等于m的数就是目标元素。实现及测试代码如下所示:#include<iostream>using namespace std;#include<sys/time.h>#include<stdlib.h>#define N 100000000#define N_min 100#defin...原创 2018-03-15 13:27:31 · 1387 阅读 · 0 评论 -
回溯法实现全排列
#include<iostream>using namespace std;int x[100];bool place(int k){ for(int i=1;i<k;i++) { if(x[k]==x[i]) return false; } return true;}void queue(int n){ int k=1; while(k>...原创 2018-03-15 13:35:51 · 1359 阅读 · 0 评论 -
前序和中序重建二叉树、二叉排序树转换为排序的双向链表
#include<iostream>using namespace std;int Pre[1000]={ 492,211,123,59,34,21,12,6,4,2,0,1,3,5,9,8,7,11,10,18,16,14,13,15,17,19,20,27,23,22, 25,24,26,31,29,28,30,33,32,50,43,39,36,35,37,38,41,4...原创 2018-03-15 13:51:40 · 358 阅读 · 0 评论 -
C++实现栈和队列
#include<iostream>using namespace std;void *memcpy(void *dest,void *src,int n){ char *pdest=(char*)dest; char *psrc=(char*)src; if(psrc+n>pdest) { for(int i=n-1;i>=0;i--) pdest...原创 2018-03-15 15:56:43 · 276 阅读 · 0 评论 -
二叉搜索树
#include<iostream>#include<stack>#include<stdlib.h>#define N 1000#define random(i) (rand()%i)using namespace std;struct BinTreeNode{ int key; BinTreeNode *llink,*rlink;}; ...原创 2018-03-16 21:33:29 · 198 阅读 · 3 评论 -
各种动态规划
1、01背包问题(类似兑奖获得最大价值、挖金矿) 假设有m张奖券,要兑换n个礼物,已知每个奖品所需要的奖券数和价值,求如何兑换获得的价值最大,实现代码如下所示://5 1000 //奖品数和奖券数 相当于物体个数和总体积 金矿个数和总人数//144 990 //消耗的奖券数和价值 相当于单个体积和重量 单个金矿所需人...原创 2018-03-17 14:08:15 · 289 阅读 · 0 评论 -
八大排序算法实现与测试
//简单插入排序void insertSort(int *a,int n){ if(a==NULL||n<=1) return; for(int i=1;i<n;i++) { int j=i-1; int x=a[i]; while(j>=0&&a[j]>x) { a[j+1]=a[j]; j--; } a[...原创 2018-03-14 15:07:27 · 393 阅读 · 0 评论