943 1 分钟

# 数组 1. 定义 数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,比如:一维数组可以看作一个线性表,二维数组可以看作 “数据元素是一维数组” 的一维数组,三维数组可以看作 “数据元素是二维数组” 的一维数组,依此类推。 n 维数组可以看成是这样一个线性表,其中每个数据元素均是一个 n -1 维数组。 2. 特点 数组是一个具有固定格式和数量的数据有序集,每一个数据元素有唯一的一组下标来标识,因此,在数组上不能做插入、删除数据元素的操作。通常在各种高级语言中数组一旦被定义,每一维的大小及上下界都不能改变。 3....
153 1 分钟

# 3. 对角矩阵 (带状矩阵) a11 a12 0 …………… 0a21 a22 a23 0 ………… 00 a32 a33 a34 0 … 0 ……………………………0 0 … an-1,n-2 an-1,n-1 an-1,n0 0 … … an,n-1 an,n.共存储: 3n-2 个元素 sak 与 aji 的对应关系为: k=3(i-1)-1+j-i+1=2i+j-3
143 1 分钟

# 矩阵的压缩存储 有些阶数很高的矩阵中,有许多值相同的元素或者零元素,为了节省存储空间,可以对这类矩阵进行压缩存储。 所谓压缩存储是指:为多个值相同的元只分配一个存储空间;对零元不分配空间。假若值相同的元素或者零元素在矩阵中的分布有一定规律,则我们称此类矩阵为特殊矩阵;反之,称为稀疏矩阵。
205 1 分钟

# 1. 对称矩阵 若 n 阶矩阵 A 中的元满足下述性质: aij==aji 1≤i,j≤n则称为 n 阶对称矩阵。 对于对称矩阵 我们可以为每一对对称元分配一个存储空间,则可将 n2 个元压缩存储到 n (n+1)/2 个元的空间中。不失一般性,我们可以行序为主序存储其下三角 (包括对角线) 中的元。 例子: 1 2 3 4 52 1 6 7 83 6 1 9 04 7 9 1 15 8 0 1 1对下三角部分以行为主序列顺序存储到一个向量中去,在下三角中共存有 n*(n+1)/2 个元素
2.5k 2 分钟

# 4. 稀疏矩阵 1. 定义 假设在 mn 的矩阵中,有 t 个元素不为零。令 δ=t/mn,称 δ 为矩阵的稀疏因子。通常认为 δ≤0.05 时称为稀疏矩阵。 2. 稀疏矩阵的压缩存储思想 按照压缩存储的概念,为了节省存储单元,可以只存储稀疏矩阵的非零元素。因此在存储非零元素的同时,还必须存储非零元素所在的行号、列号,才能迅速确定一个非零元素是矩阵中的哪一个元素。其中每一个非零元素所在的行号、列号和值组成一个三元组 (i,j,aij),并由此三元组惟一确定。 稀疏矩阵进行压缩存储通常有两类方法: ・顺序存储 ・链式存储 3....
337 1 分钟

# 2. 三角矩阵 三角矩阵大体分为三类:下三角矩阵、上三角矩阵、对称矩阵。对于一个 n 阶矩阵 A 来 说:若当 i j 时,有 aij =c (典型情 况 c=0), 则称此矩阵为上三角矩阵;若矩阵中的所有元素均满足 aij =aji, 则称此矩阵为对称矩 阵。 1) 下三角矩阵 共存储了n*(n+1)/2+1个元素,设存入向量:SA[n*(n+1)/2+1]中,这种的存储方式可节约n*(n-1)/2-1个存储单元,sak 与aji 的对应关系为:if(i>=j) k=i*(i-1)/2+j-1;if(i<j)...
1.8k 2 分钟

# 基础 # 头文件 #include<stdio.h># 放在屁股暂停 system("pause");# 结构体 # 定义 // 第一种struct Product// 结构体名{ char cname// 成员列表}product1,product2 ;// 第二种struct Product product1;struct Product product2;# 引用 // 引用product1.cname="icebox"// 或者Struct Produc{ char...
137 1 分钟

# 循环链表 1. 概念 循环链表是线性表的另一种链式存储结构,它的特点是将线性链表的最后一个结点指针指向链表的第一个结点。 优点:从任意位置开始可以访问链中任意结点。 判空:L->next==L 判空:L->next==L 判尾:P->nextL; PL ; 2. 定义 3. 操作
214 1 分钟

# 链表与顺序表的比较 顺序表: ・需要预分配一定长度的存储空间。太大易造成存储空间的浪费,太小又将造成频繁地进行存储空间的再分配。 ・顺序表是一种随机存取的结构,对顺序表中任一元素进行存取的时间相同。 ・顺序表对插入、删除操作需要移动近一半的数据元素。 链表: ・存储分配灵活,链表中的结点可在程序执行过程中动态生成。 ・链表是一种顺序存取的结构,对链表中的每个结点都必须从头指针所指结点起顺链扫描。 ・链表对插入、删除操作不需要移动数据元素。
727 1 分钟

# 双向链表 1. 概念 在双向链表中,每个结点有两个指针域,一个指向后继 结点,另一个指向直接前驱结点。 判空: L->next==Null && L->prior==Null2. 定义 typedef struct DuLNode { DataType data; struct DuLNode *prior; struct DuLNode *next;}DuLNode, *DuLinkList;// 定义头指针: DuLinkList L;// 定义工作指针: DuLNode...
-->