数据结构 | 稀疏矩阵的三元组转置算法

2020-03-15
阅读 2 分钟
3.4k
按照压缩储存概念,我们只需要储存非零元。而储存非零元除了要记录他的值外,还需要记录所在行列位置(i,j)。因此,一个三元组(i,j,a)即可表示一个非零元。

数据结构 | 数组的顺序表示与实现

2020-03-15
阅读 4 分钟
2.1k
相关定义 前边讨论的线性表、串中的数据元素都是非结构的原子类型,即元素的值是不能再分解的;而数组和广义表中的数据元素本身也是数据结构,可以分解 顺序存储的次序约定问题: 语言类型 排序方式 例子 C语言、PASCAL、拓展BASIC 以行序为主序,把每个高维数组的第一个先依次表示出来 a【0】【1】,a【1】【1】,a【2】...

数据结构 | 串的模式匹配算法

2020-03-13
阅读 2 分钟
2.2k
过程:从主串S的第pos个字符与子串的第一个字符开始比较,若比较成功,两串的指针加一,继续比较下一个;若出现比较失败,子串指针回到第一个字符,主串指针回到与子串第一个字符对应字符的下一个字符,重新开始比较。

数据结构 | 串的块链储存表示

2020-03-12
阅读 4 分钟
1.9k
与线性表的链式储存结构类似,也可以用链表储存串值。但由于串的数据元素是字符,而一个节点可以储存一个字符,也可以储存多个字符,因此存在“节点大小问题”(节点理解为块)。

数据结构 | 串的堆分配储存表示

2020-03-11
阅读 3 分钟
1.7k
相关定义 串的定长顺序储存采取顺序存储结构,存在长度上限,超出部分会截去。为克服此弊病唯有不限定长度上限,即采用动态分配串的储存空间。 堆分配储存特点:仍以一组地址连续的储存单元存放地址序列,但存储空间是在程序执行过程中动态分配而得。 堆:在C语言中,存在一个称为堆的自由存储区,有动态分配函数malloc...

数据结构 | 顺序栈的表示与实现

2020-03-11
阅读 2 分钟
1.6k
stackSize:当前栈可使用的最大容量(以elemtype个数为单位)base:栈底指针,当base=NULL时表示栈结构不存在top:栈顶指针,初始化时base=top,表明为空栈又因为入栈时top+1,出栈时top-1,因此top始终指向栈顶元素的下一个位置,而base指向栈底元素

数据结构 | 线性表的链式表示与实现

2020-03-10
阅读 4 分钟
1.1k
链式表相关定义 与线性表比较 优点 缺点 线性表 可通过下标随机存取某元素 插入删除时需移动大量元素 链式表 插入删除时不需移动大量元素 不可随机存取 定义 节点:储存本身信息+储存直接后继的位置,两部分构成数据域:储存本身信息的域指针域:储存直接后继位置的域 头结点 有时,我们会在单链表第一个节点前附设一个...

数据结构 | 线性表的顺序表示与实现

2020-03-10
阅读 4 分钟
1.8k
顺序表相关概念 顺序表:用一组地址连续的存储单元依次存储线性表的数据元素,是一种随机存取的存储结构 存取结构:分为随机存取和非随机存取(又称顺序存取) (1) 随机存取就是直接存取,可以通过下标直接访问的那种数据结构,与存储位置无关,例如数组。 非随机存取就是顺序存取了,不能通过下标访问了,只能按照存...