zoukankan      html  css  js  c++  java
  • 第四章学习小结

    串,矩阵,广义表

    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 核心代码,

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

  • 相关阅读:
    解决Docker安装慢
    Spring Boot源码分析-启动过程
    Ubuntu安装Docker
    Jenkins搭建
    Hexo搭建静态博客站点
    FactoryBean简介以及Mybatis-Spring应用
    ArrayList源码分析
    Spring AOP-用代理代替繁琐逻辑
    Spring Validation-用注解代替代码参数校验
    Netty学习(4):NIO网络编程
  • 原文地址:https://www.cnblogs.com/liusiling/p/10703639.html
Copyright © 2011-2022 走看看