zoukankan      html  css  js  c++  java
  • 第四章_串、数组和广义表_学习小结

    串、数组和广义表

    广义表被鸽了,暂时就不提它,总结一下串和数组的心得。

    串本身不难,好比字符数组,都是我们所熟悉的。难得是与其相关的算法,例如KMP算法。
    对于KMP算法,难点在于next数组的取得与使用。
    点击跳转:基于KMP算法的字符匹配问题
    以上是个人的一些见解,当然是参考别人的博客之后的....

    数组

    至于数组,这里主要研究二维数组的应用,比如用三元组表压缩存储。
    由于书里连ADT都没有,只能自己摸索着定义了....(还不是为了PTA的题目QAQ)所以就稍微详细说一下
    例:用三元组表压缩存储稀疏矩阵

    //定义三元组表的单个结点
    typedef struct {
    	int row;		//所在行
    	int column;		//所在列
    	int value;		//值
    }Node;
    
    //定义三元组表
    typedef struct {
    	int rows;		//总行
    	int columns;	//总列
    	int nums;		//非零元素个数
    	Node data[100];	//非零元素
    }tupleTable;
    

    三元组表收先要有个表的信息,包括矩阵的行、列,非零元素的总个数。然后才是里面的具体数值。
    具体数值含有这个非零元素的具体信息,包括这个元素的所在行、所在列、它的值。所以用单个数据类型肯定是行不通的,要额外定义结构体,我们就叫它结点吧。
    然后在三元组表里加入这个结点类型的数组,就能实现存储了。如果要查询输出,遍历tupleTable.data[i].value就行了。

    AI代码

    难得梅姐带着我们打代码,体会了整个解题过程,所以印象很深。一个点一个点进行,在过程中对程序进行优化,及时指出错误与不足。
    点击跳转:手把手教你过AI核心代码
    这种经历是十分难得的,无论是对于解题思路的梳理、还是代码的实现都是有很大好处XD

    目标

    之前学习了栈和队列,因为没有具体实现其各个功能而感到遗憾,于是就额外花时间将单链表基本功尽量去实现,效果不错,对单链表的理解也更加深刻,所以上周的目标也有好好实现呢。
    点击跳转:单链表功能实现
    接下来的计划是对STL进行一个了解与学习,特别是。在学习各种函数用法的时候也尽量去看看源码,从最底层向上理解。不管是对基本的数据结构还是对PTA解题都会是个不错的助力。

  • 相关阅读:
    手动安装mysql-5.0.45.tar.gz
    Hadoop2.5.2+HA+zookeeper3.4.6详细配置过程
    大数据分析之技术框架整理
    docker安装
    CentOS 6.8安装Docker V1.0
    处理百万级的数据
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 31. 栈的压入、弹出序列
  • 原文地址:https://www.cnblogs.com/luoyang0515/p/10699814.html
Copyright © 2011-2022 走看看