摘要: 问题描述:给定两个序列,找出X和Y的最长公共子序列。子问题的递归结构:代码:#include "stdafx.h"#include<iostream>using namespace std;#define M 7#define N 6char x[M]={'A','B','C','B','D','A','B'};char y[N]={'B','D','C','A','B', 阅读全文
posted @ 2013-06-12 15:16 李VS超 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 问题描述:给定N个整数(可能是负整数)组成的序列,求该序列的最大子段和。该问题的动态规划方程为:b[j]={b[j-1]+a[j],a[j]}代码:#include "stdafx.h"#include<iostream>using namespace std;#define N 6int _tmain(int argc, _TCHAR* argv[]){ cout<<"----------最大子段和---------"<<endl; int data[N]={-2,11,-4,13,-5,-2}; int MaxSu 阅读全文
posted @ 2013-06-12 10:36 李VS超 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 分支限界法类似于回溯法,也是在问题的解空间上搜索问题的解的算法。分支限界法是找出满足约束条件的一个解或者满足某种条件的最优解。分支限界法则以广度优先或者最小耗费优先的方式搜索解空间。其搜索策略是:1、在扩展结点处,先生成其所有的儿子结点,然后再从当前的活结点表中选择下一个扩展结点。2、为了加速搜索的进程,在每一个活结点处,计算一个函数值,并根据函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着最有利的分支推进。分支限界的思想主要体现在第二点上。从活结点表中选择下一个扩展结点的不同方式导致不同的分支限界法,最常见的有以下两种1、队列式分支限界法2、优先队列式分支限界法下面结合布 阅读全文
posted @ 2013-06-07 11:10 李VS超 阅读(1455) 评论(0) 推荐(0) 编辑
摘要: 参考:http://www.cnblogs.com/hustcat/archive/2008/04/09/1144645.htmlN后问题的描述:在N*N的方格中,放置N个皇后使得彼此不受攻击,即任意两个皇后不能在同一行、同一列或者同一条对角线上。典型的搜索图:典型的问题是八皇后问题:代码:#include "stdafx.h"#include<iostream>using namespace std;#define N 9int x[N+1];//输出结果void Output(){ for(int i=1;i<=N;i++) { cout<< 阅读全文
posted @ 2013-06-05 19:51 李VS超 阅读(263) 评论(0) 推荐(0) 编辑
摘要: STL--stack/queue的使用方法2010-01-05 17:36stack(栈)和queue(队列)也是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)的queue(队列)的实现。准确地说,STL中的stack和queue不同于vector、list等容器,而是对这些容器的重新包装。这里我们不去深入讨论STL的stack和queue的实现细节,而是来了解一些他们的基本使用。1、stackstack模板类的定义在<stack>头文件中。stack模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的 阅读全文
posted @ 2013-06-04 16:48 李VS超 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 参考:http://www.cnblogs.com/hustcat/archive/2008/04/09/1144645.html方法:(回溯法)1、总结问题解决问题的思想。2、总结具体的算法流程和典型问题解决思路。3、编程实现具体实例。将这个方法推广到其他算法上,快速高效的掌握算法思想。回溯法一种系统的搜索问题解答的办法。1、思想:碰壁返回2、算法流程:首先定义一个解空间,这个解空间必须至少包含问题的一个解。其次需要组织解空间使它容易被搜索,典型的组织方法是图或者二叉搜索树。最后按深度优先搜索的方法从开始结点开始搜索。在搜索的任意时刻,只保存开始结点到当前结点的路径。3、具体实例(迷宫问题) 阅读全文
posted @ 2013-06-04 14:55 李VS超 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 参考网上代码,其中实现哈弗曼树的地方,使用了贪心准则。template<typename Type>class BinaryTree;template<typename Type>void Huffman(Type *,int,BinaryTree<Type> &);template<typename Type>class BinTreeNode{public: friend class BinaryTree<Type>; friend void Huffman<Type>(Type *,int,BinaryTre 阅读全文
posted @ 2013-06-03 21:22 李VS超 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 严正声明,这篇博客中写的代码,转自网络,非本人所创造。自认为此代码规范性很高,水平很好,供各位大神参考。目 录1、顺序表 1Seqlist.h 1Test.cpp 62、单链表 8ListNode.h 8SingleList.h 10test.cpp 203、双向链表 22NodeList.h 22DoubleList.h 24Test.cpp 344、循环链表 36ListNode.h 36CircularList.h 37Test.cpp 475、顺序栈 49SeqStack.h 49Test.cpp 546、链式栈 55StackNode.h 55LinkStack.h 56Test.. 阅读全文
posted @ 2013-06-03 18:38 李VS超 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1、抽象工厂模式 阅读全文
posted @ 2013-05-29 16:41 李VS超 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 从4月1号到5月29号,基本上自己把常用的数据结构实现了一遍,为了方便查阅和改进在这里建立一个索引链接。数据结构:1、单链表2、循环链表3、双向链表4、队列5、循环队列6、双端队列7、栈8、字符串9、二叉树10、最小堆11、并查集12、哈希表13、二叉搜索树14、图15、深度遍历和广度遍历16、迪杰斯特拉算法17、插入排序18、选择排序19、快速排序20、归并排序21、单词查找树算法索引:分治算法:1、二分查找贪心算法:1、最优装载动态规划1、0-1背包问题 阅读全文
posted @ 2013-05-29 16:36 李VS超 阅读(228) 评论(0) 推荐(0) 编辑