动态规划之最长公共子序列的求解(C++实现)

// LCS.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "string.h"
#include "iostream"
using namespace std;
#define M 100
#define N  100
int lcsLength(char* X,char* Y);//求解两个序列的最长公共子序列的长度。
void lcs(int b[][N], char* X, int i, int j);//利用求得的数据结构 b[][],帮助构建最长公共子序列。
int b[M][M]={0};//用于帮助构造最优解。


int _tmain(int argc, _TCHAR* argv[])
{
char*X ="10010101";
char*Y ="010110110";
cout<<"序列1: "<=c[i][j-1])
{
c[i][j] = c[i-1][j];
b[i][j] = 1;
}
else 
{
c[i][j] = c[i][j-1];
b[i][j]  =3;
}
}
return c[m][n];
}
void lcs(int b[][N], char* X, int i, int j)
{
if(i == 0 || j == 0)return;
if( b[i][j] ==2)
{
lcs(b,X,i-1,j-1);
cout<

你可能感兴趣的:(数据结构,算法设计)