- 博客(36)
- 收藏
- 关注
原创 求和的递归、迭代、动态规划实现;
接下来将介绍一个菲波那切数列、阶乘、求和的递归、迭代、动态规划实现和只能用递归实现的汉诺塔;头文件;# ifndef _RECURSION_# define _RECURSION_# include <iostream>using namespace std;//菲波那切数列递归、迭代和动态规划实现;int FibonacciRecursion(int val)...
2019-08-15 21:56:12
384
原创 阶乘的递归、迭代、动态规划实现;
接下来将介绍一个菲波那切数列、阶乘、求和的递归、迭代、动态规划实现和只能用递归实现的汉诺塔;头文件;# ifndef _RECURSION_# define _RECURSION_# include <iostream>using namespace std;//菲波那切数列递归、迭代和动态规划实现;int FibonacciRecursion(int val)...
2019-08-15 21:53:27
545
原创 菲波那切数列的递归、迭代、动态规划实现;
接下来将介绍一个菲波那切数列、阶乘、求和的递归、迭代、动态规划实现和只能用递归实现的汉诺塔;头文件;# ifndef _RECURSION_# define _RECURSION_# include <iostream>using namespace std;//菲波那切数列递归、迭代和动态规划实现;int FibonacciRecursion(int val)...
2019-08-15 21:50:18
334
原创 平衡二叉排序树的原理及实现
上面讲的二叉排序树的查找顺序与树的形态密切相关;当树为完全二叉树是查找的效率很高;和折半查找的效率相同;但是树的不一定是完全二叉树;极端可能是单支树;其性能和链表相同;这是在一些系统上不能接收的;因此能不能对二叉排序树进行改进;这就是平衡二叉树;平衡二叉树就是在原来的二叉树中增加一个表示节点平衡因子的域;在插入的过程中随时对根节点检查是否平衡;如果不平衡就要用调整; ...
2019-08-11 19:48:15
829
原创 哈希查找
接下来的几篇博客都是关于查找的;主要有顺序查找;折半查找(应用于有序表);二叉排序树查找;哈希查找;排序直接的数据结构介绍; 顺序查找和折半查找是顺序表存储;二叉排序树是二叉树存储;哈希查抄是类图(和图的邻接表存储相似);头文件(Search.h);# ifndef _SORT_typedef int KeyType;typedef struct{...
2019-08-09 21:46:14
336
原创 数据结构之二叉排序树查找
接下来的几篇博客都是关于查找的;主要有顺序查找;折半查找(应用于有序表);二叉排序树查找;哈希查找;排序直接的数据结构介绍; 顺序查找和折半查找是顺序表存储;二叉排序树是二叉树存储;哈希查抄是类图(和图的邻接表存储相似);头文件(Search.h);# ifndef _SORT_typedef int KeyType;typedef struct{...
2019-08-09 21:43:43
961
原创 数据结构之折半查找
接下来的几篇博客都是关于查找的;主要有顺序查找;折半查找(应用于有序表);二叉排序树查找;哈希查找;排序直接的数据结构介绍; 顺序查找和折半查找是顺序表存储;二叉排序树是二叉树存储;哈希查抄是类图(和图的邻接表存储相似);头文件(Search.h);# ifndef _SORT_typedef int KeyType;typedef struct{...
2019-08-09 21:41:03
527
原创 数据结构之顺序查找
接下来的几篇博客都是关于查找的;主要有顺序查找;折半查找(应用于有序表);二叉排序树查找;哈希查找;排序直接的数据结构介绍; 顺序查找和折半查找是顺序表存储;二叉排序树是二叉树存储;哈希查抄是类图(和图的邻接表存储相似);头文件(Search.h);# ifndef _SORT_typedef int KeyType;typedef struct{...
2019-08-09 21:38:22
5099
原创 归并排序(merge sort)
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-09 13:37:17
237
原创 数据结构排序之快速排序(quick sort)
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-09 12:38:08
289
原创 数据结构排序之堆排序
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-09 12:20:57
144
原创 简单选择排序(simple select sort)
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-08 22:15:41
257
原创 冒泡排序(bubble sort)
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-08 22:02:18
239
原创 Shell排序
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-08 21:46:22
182
原创 折半插入排序;
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-08 20:56:14
213
原创 直接插入如排序(straight insertion sort)
接下来的几篇博客都是关于排序的;主要有插入类排序;交换类排序;选择类排序;插入类排序主要有直接插入如排序(straight insertion sort);折半插入排序(bianry insertion sort); Shell sort;交换类排序主要有冒泡排序(bubble sort); 快速排序(quick sort);选择类排序主要有;简单选择排序(simple selecti...
2019-08-08 19:41:56
306
原创 拓扑排序(Topological Sort)采用贪心算法的思想;
采用贪心算法的思想;总是做除对当前来说最优的算法;层层叠加;得到最终的结果;需要维护一个前驱数组来记录前驱;头文件(Header file);# ifndef _ALGRAPH_# define _ALGRAPH_# include <iostream>using namespace std;# define MaxVertexNum 256typedef in...
2019-08-06 16:49:49
654
原创 动态规划之Floyd算法;
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;Prim算法, Kruskal算法, Dijkstra算法, Floyd算法中;只有Floyd算法是动态规划(Dynamic Programming);其他的三个都是贪心算法(Greedy a...
2019-08-06 16:41:07
842
原创 迪杰斯特拉算法;
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _AMGRAPH_# define _AMGRAPH_# include <iostream>using namespace std;# define ...
2019-08-04 17:22:02
575
原创 图的边表存储结构及其上的Kruskal算法实现;
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _ELGRAPH_# define _ELGRAPH_# include <iostream>using namespace std;# define ...
2019-08-03 22:14:51
656
原创 有向图的十字链表存储;
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _OLGRAPH_# define _OLGRAPH_//包含相关的库;# include <iostream>using namespace std;...
2019-08-03 22:12:16
382
原创 无向图的邻接多重边实现;
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _AMLGRAPH_# define _AMLGRAPH_# include <iostream>using namespace std;# defin...
2019-08-03 22:10:11
815
原创 图的邻接表存储;深度优先遍历;借助队列的广度优先遍历实现;
ALGraph.h# ifndef _ALGRAPH_# define _ALGRAPH_# include <iostream>using namespace std;# define MaxVertexNum 256typedef int InfoType;typedef char VertexType;typedef struct EdgeNode{...
2019-08-03 22:07:04
667
原创 图的邻接矩阵存储, 借助队列的广度优先遍历; prim算法的实现和分析;
头文件(AMGraph.h)# ifndef _AMGRAPH_# define _AMGRAPH_# include <iostream>using namespace std;# define MaxVertexNum 256typedef char VertexType;typedef int EdgeType;typedef struct{ Ver...
2019-08-03 22:01:18
335
原创 数据结构字符串动态堆存储实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _HEAPSTRING_# define _HEAPSTRING_# include <iostream>using namespace std;typ...
2019-07-28 16:07:04
324
原创 使用带头结点只设尾指针的单循环链表实现队列
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _LINKQUEUE_# define _LINKQUEUE_# include <iostream>using namespace std;typed...
2019-07-27 19:06:04
5211
原创 数据结构链队列实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _HEAD_# define _HEAD_# include <iostream>using namespace std;typedef int Dat...
2019-07-26 21:59:36
269
原创 数据结构顺序队列实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _HEAD_# define _HEAD_# include <iostream>using namespace std;typedef int Dat...
2019-07-26 21:58:12
251
原创 数据结构链栈实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _HEAD_# define _HEAD_# include <iostream>using namespace std;typedef int Dat...
2019-07-26 21:56:19
356
原创 数据结构顺序栈实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _HEAD_# define _HEAD_# include <iostream>using namespace std;typedef int Dat...
2019-07-26 21:54:13
325
1
原创 带头节点的双循环链表
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _LINKLIST_# define _LINKLIST_# include <iostream>using namespace std;typedef...
2019-07-25 19:04:55
469
原创 带头节点的单循环链表
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _LINKLIST_# define _LINKLIST_# include <iostream>using namespace std;typedef...
2019-07-25 19:02:51
373
原创 单链表代码实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _LINKLIST_# define _LINKLIST_# include <iostream>using namespace std;typedef...
2019-07-25 19:00:14
683
原创 线性表代码实现
如题;这是一套完整的可运行的代码;需要读者有一定的基础去阅读;语言是用C语言实现;在C++环境中编写;在C++中可直接运行;在C语言中需要改部分头文件和输出语句;头文件;这要是代码的声明部分;# ifndef _SEQLIST_# define _SEQLIST_# include <iostream>using namespace std;# define ...
2019-07-25 18:55:52
2054
1
原创 引用的本质和C++类封装的原理;
引用的本质和C++类封装的原理, 谈到这个问题就要,首先连接长指针变量;即型如int* const p,他表示的是p的指向不可变,指向的内容可读可写; int a = 10; int * const p = &a; *p = 20; cout << *p << endl;而如果使用const int *const p这样指针p就完全变为只读的,如;...
2019-07-21 14:34:01
559
原创 C++的STL适配器的实现原理
在C++的算法中,每个仿函数,都必须要继承binary_function 或者unary_function这两个类, 这两个函数都是定义typedef定义;这里可以看源码;template<class _Arg1, class _Arg2, class _Result> struct binary_function { // base class for binary...
2019-07-20 22:29:37
309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人