2.5k 2 分钟

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

# 顺序表 # 1. 概念 定义:具有相同数据类型的 n (n≥0) 个数据元素组成的有限 序列。是最简单、最常用的数据结构。 ・线性表的顺序表示就是用一组地址连续的存储单 元依次存储线性表的数据元素。 ・线性表的这种机内表示称做线性表的顺序存储结 构或顺序映像。 ・通常,称这种存储结构的线性表为顺序表。 # 2. 定义 // 静态描述typedef struct node{ DataType data[maxsize]; int length;}sqlist;sqlist L;// 动态描述typedef struct...
3.2k 3 分钟

# 单链表 1. 概念 结点:数据元素及直接后继的存储位置组成一个数据元素的存储结构称为一个结点。 结点包括两个域: 数据域:存储元素本身的信息 指针域:存储直接后继的位置,指针域中存储的信息称作指针或链 单链表:由于链表的每个结点中只包含一个指针域,故又称线性链表或单链表 头指针:头指针指示链表中第一个结点的存储位置。 由于最后一个数据元素没有直接后继,则线性链表中最后一个结点的指针为 “空”(NULL) 链式存储结构特点: 存储空间可以不连续。不要求逻辑上相邻的元素在物理位置上也相邻。数据元素间逻辑关系由指针域确定。 头指针 (Head...
990 1 分钟

# 4. 链队列 1) 定义 typedef struct Node{ QueueElementType data; /* 数据域 */ struct Node *next; /* 指针域 */}LinkQueueNode;typedef struct{ LinkQueueNode * front; LinkQueueNode * rear;}LinkQueue;2) 初始化 int InitQueue(LinkQueue * Q){ /* 将 Q 初始化为一个空的链队列 */ ...
-->