第四章_串、数组和广义表_学习小结

串、数组和广义表

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

串本身不难,好比字符数组,都是我们所熟悉的。难得是与其相关的算法,例如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解题都会是个不错的助力。

原文地址:https://www.cnblogs.com/luoyang0515/p/10699814.html

时间: 2024-10-10 01:36:27

第四章_串、数组和广义表_学习小结的相关文章

第五章:1.数组和广义表 -- 数组

前言: 2.3.4章讨论的线性结构中的数据元素都是非结构的原子类型,元素的值是不再分解的.本章讨论的两种数据结构---数组和广义表可以看成是线性表在下述含以上的扩展:表中的数据元素本身也是一个数据结构. 其中.数组是一种比较熟知的数据类型,几乎所有程序语言都把数组类型设定为固有类型,前两节节以抽象数据类型的形式讨论数组的定义和实现,使读者加深对数组的理解. 目录: 1.数组的定义 2.数组的顺序表示和实现 3.矩阵的压缩存储 4.广义表的定义 5.广义表的存储结构 6.m元多项式的表示 7.广义

数据结构习题之多维数组和广义表

第五章 多维数组和广义表 一.基本要求.重点.难点 本章目的是介绍多维数组的逻辑结构特征及其存储方式.特殊矩阵和稀疏矩阵的压缩存储方法.本章重点是熟悉多维数组的存储方式.矩阵的压缩存储方式,难点是稀疏矩阵的压缩存储方示下实现的算法. 二.考核目标.考核要求 1.多维数组,要求达到"理解"层次 1.1多维数组的逻辑特征. 1.2多维数组的顺序存储结构及地址计算方式. 1.3数组是一种随机存取结构的原因. 2.矩阵的压缩存储,要求达到"理解"层次 2.1特殊矩阵和稀疏矩

数据结构期末复习第五章数组和广义表

数据结构期末复习第五章 数组和广义表 二维数组A[m][n]按行优先 寻址计算方法,每个数组元素占据d 个地址单元.     设数组的基址为LOC(a11) :LOC(aij)=LOC(a11)+((i-1)*n+j-1)*d     设数组的基址为LOC(a00) :LOC(aij)=LOC(a00)+( i*n+j )*d    二维数组A[m][n]按列优先 寻址计算方法,每个数组元素占据d 个地址单元.     设数组的基址为LOC(a11) :LOC(aij)=LOC(a11)+((j

5-4-十字链表(稀疏矩阵)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 十字链表(稀疏矩阵) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.Scanf.c        相关测试数据下载

数组和广义表-第5章-《数据结构题集》答案解析-严蔚敏吴伟民版

习题集解析部分 第5章 数组和广义表 ——<数据结构题集>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑       本习题文档的存放目录:数据结构\▼配套习题解析\▼05 数组和广义表       文档中源码的存放目录:数据结构\▼配

5-3-行逻辑链接的顺序表(稀疏矩阵)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 行逻辑链接的顺序表(稀疏矩阵) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.Scanf.c        相关测试

5-2-三元组顺序表(稀疏矩阵)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 三元组顺序表(稀疏矩阵) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.Scanf.c        相关测试数据下

5-5-广义表(头尾链表存储表示)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 广义表(头尾链表存储表示) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.SequenceString.c    

5-6-广义表(扩展线性链表存储表示)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第5章  数组和广义表 - 广义表(扩展线性链表存储表示) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.SequenceString.c