4.2.1 存储结构 4.3.1 BF算法 4.3.2 KMP算法 4.3.3 BF vs KMP 4.4.1 二维数组 4.4.2 多维数组 4.5.1 特殊矩阵 4.5.2 三元组表 4.5.3 十字链表 4.6.1 广义表
点击矩阵单元格添加/删除非零元素,右侧实时展示十字链表结点及指针关系
稀疏矩阵 (点击操作)
非零元素
零元素
🕸十字链表结构
十字链表每个结点包含: 行号(i) | 列号(j) | 值(v) | 行指针(right) | 列指针(down)
💡十字链表结点结构
typedef struct OLNode { int i, j; // 行号和列号 int val; // 元素值 struct OLNode *right; // 行方向后继指针 struct OLNode *down; // 列方向后继指针 } OLNode, *OLink; typedef struct { OLink *rhead; // 行指针数组 OLink *chead; // 列指针数组 int mu, nu, tu; // 行数、列数、非零元个数 } CrossList;