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解题都会是个不错的助力。

  • 相关阅读:
    HTB-靶机-Charon
    第一篇Active Directory疑难解答概述(1)
    Outlook Web App 客户端超时设置
    【Troubleshooting Case】Exchange Server 组件状态应用排错?
    【Troubleshooting Case】Unable to delete Exchange database?
    Exchange Server 2007的即将生命周期,您的计划是?
    "the hypervisor is not running" 故障
    Exchange 2016 体系结构
    USB PE
    10 months then free? 10个月,然后自由
  • 原文地址:https://www.cnblogs.com/luoyang0515/p/10699814.html
Copyright © 2011-2022 走看看