资源简介
本科算法实验-最长公共子序列【数据+代码+说明+流程图+测试用例】

代码片段和文件信息
#include
#include
char a[500]b[500];
char num[501][501]; ///记录中间结果的数组
char flag[501][501]; ///标记数组,用于标识下标的走向,构造出公共子序列
void LCS()
{
int ij;
for(i=1;i<=strlen(a);i++)
{
for(j=1;j<=strlen(b);j++)
{
if(a[i-1]==b[j-1]) ///注意这里的下标是i-1与j-1
{
num[i][j]=num[i-1][j-1]+1;
flag[i][j]=1; ///斜向下标记
}
else if(num[i][j-1]>num[i-1][j])
{
num[i][j]=num[i][j-1];flag[i][j]=2; ///向右标记
}
else
{
num[i][j]=num[i-1][j];flag[i][j]=3; ///向下标记
}
}
}
}
void getLCS()
{
char res[500];
int i=strlen(a);
int j=strlen(b);
int k=0; ///用于保存结果的数组标志位
while(i>0 && j>0)
{
if(flag[i][j]==1) ///如果是斜向下标记
{
res[k]=a[i-1];k++;i--;j--;
}
else if(flag[i][j]==2) ///如果是斜向右标记
j--;
else if(flag[i][j]==3) ///如果是斜向下标记
i--;
}
printf(“最长公共子序列:\n“);
for(i=k-1;i>=0;i--)printf(“%c“res[i]);
}
int main()
{
int in;
FILE *fp;
char number;
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
printf(“两个序列的字母个数:“);
scanf(“%d“&n);
fp=fopen(“input.txt““w“);
if(fp==NULL)
{
printf(“open file failed\n“);
return -1;
}
for (i=0; i {
a[i] =rand() % 4 + ‘a‘ ; //产生字母的随机数
fprintf(fp“%c “a[i]);
}
fprintf(fp“\n“);
for (i=0; i {
b[i] = rand() %4 + ‘a‘ ; //产生字母的随机数
fprintf(fp“%c “b[i]);
}
fprintf(fp“\n“);
fclose(fp);
printf(“随机产生的两个序列为:\n“);
for (i=0; i {
printf(“%c “a[i]);
}
printf(“\n“);
for (i=0; i {
printf(“%c “b[i]);
}
printf(“\n“);
memset(num0sizeof(num));
memset(flag0sizeof(flag));
LCS();
printf(“长度:%d\n“num[strlen(a)][strlen(b)]);
getLCS();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2004 2016-12-05 12:09 最长公共子序列\input.txt
文件 2274 2016-12-05 15:18 最长公共子序列\最长公共子序列.c
文件 31523 2016-12-05 12:22 最长公共子序列\最长公共子序列.exe
文件 3400 2016-12-05 12:22 最长公共子序列\最长公共子序列.o
文件 10633 2016-12-05 12:11 最长公共子序列\测试用例.xlsx
文件 76319 2016-12-05 15:17 最长公共子序列\说明+流程图.docx
目录 0 2019-01-06 15:47 最长公共子序列\
相关资源
- SVR算法程序可运行
- 计算机图形学 边填充算法实现代码
- 福建师范大学历年算法考卷
- 栈的实现及应用,六种基本算法
- Bresenham算法绘制线段并利用“橡皮筋
- 介绍几种压缩算法及《笨笨数据压缩
- 改进的BP神经网络算法
- A星算法_原理讲解_例子
- 云模型的相关算法cloud
- 旋转矩阵求欧拉角的简单算法
- 栅栏填充算法源码(VC)
- RSA算法源码
- 关联分析Apriori算法实现
- [免费]relax算法成像
- 操作系统 LRU算法 实验报告 及 程序代
- 分治法快速排序算法QuickSort C
- 现代谱估计算法 music ESPRIT 谐波分解
- MUSIC算法c 实现
- 007出纳管理系统 v7[1].5.94 算法注册机
- 克鲁斯卡尔算法C和C 实现代码
- capon波束形成算法-VC实现
- QGA 量子遗传算法
- 利用OpenGL写毛笔字算法
- 带头结点的单链表的c算法实现
- 自适应隐写算法wow
- 协同过滤算法源码
- RSA AES DES ECC加密算法源码
- 密码学课程设计:DES加密解密算法的
- 北航人工智能原理课大作业源代码,
- A*算法的2D演示(带源码)
评论
共有 条评论