首页 > 其他 > 详细

第四章学习小结

时间:2019-04-14 18:36:04      阅读:112      评论:0      收藏:0      [点我收藏+]
串,矩阵,广义表

1.串有两种存储结构,顺序存储和链式存储
主要 学习串的模式匹配,一个是BF算法(穷举)另一个是KMP算法

KMP 算法的关键是求next数组的值,
2.数组
数组也有顺序存储和链式存储,
主要算某个元素在数组的位置,公式
3.矩阵
矩阵压缩
对称矩阵
三角矩阵
对角矩阵
压缩后的位置求法

主要学习稀疏矩阵的压缩
定义的存储结构有 三元组表

第四章作业是字符串匹配

刚开始就想用BF 算法,其实这方法真的机械,后来尝试用KMP,但是遇到很多问题,最麻烦的还是j回溯的位置问题,感觉还是有点一知半解。

第四章实践有稀疏矩阵的压缩和AI代码,在做稀疏矩阵的压缩时,出问题的总是写错结构体元素的调用,格式没写对,导致找很久才找出错误,遇到的另一个问题是输出的时候遇到的问题,因为需要不断遍历整个矩阵,所以在输出的时候往往很难,最后才搞了个

flag,flag是真的好用。

 1 三元组表存储
 2 #typedef struct{
 3 int row; //每个元素的行数
 4 int column; //每个元素的列数
 5 int value; //每个元素的值
 6 }node;
 7 #typedef struct{
 8 int m; //总行数
 9 int n; //总列数
10 int N; //非零元素个数
11 node a[]1000];
12 }Matrix;

 

int main()
{
	Matrix K;
	node a[100];      
	int P;
	int m,n,N; 
	cin >>K.m;         //输入m行
	cin >>K.n;         //输入n列
	cin >>K.N;         //输入元素个数
	for(int i=0;i<K.N;i++)
    {
	    cin>>K.a[i].q;
		cin>>K.a[i].p;
		cin>>K.a[i].value;}
	cin>>P;
	 int i=0;
	 int flag=0;
	 while(i<K.N)
	 {
	 if(P==K.a[i].value)
	  {
	    cout<<K.a[i].q<<" "<<K.a[i].p<<endl;
	    flag=1;}
	 ++i; 
	 }
	if (flag==0) 
	 cout<<"ERROR"<<endl;
    
	return 0;
}
      

  另一个实践是AI 核心代码,

这道实践是老师带着我们做的,在听老师讲的过程中,好像开始慢慢感悟到做一道题按照什么样的思路,一点一点的分解。

 

第四章学习小结

原文:https://www.cnblogs.com/liusiling/p/10703639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!