📄 5.26.c
字号:
5.26③ 试编写一个以三元组形式输出用十字链表
表示的稀疏矩阵中非零元素及其下标的算法。
要求实现以下函数:
void OutCSM(CrossList M, void(*Out3)(int, int, int));
/* 用函数Out3,依次以三元组格式输出十字链表表示的矩阵 */
稀疏矩阵的十字链表存储表示:
typedef struct OLNode {
int i,j; // 该非零元的行和列下标
ElemType e; // 非零元素值
OLNode *right,*down; // 该非零元所在行表和列表的后继链域
}OLNode, *OLink;
typedef struct {
OLink *rhead,*chead; // 行和列链表头指针向量基址
int mu,nu,tu; // 稀疏矩阵的行数、列数和非零元个数
}CrossList;
void OutCSM(CrossList M, void(*Out3)(int, int, int))
/* 用函数Out3,依次以三元组格式输出十字链表表示的矩阵 */
{
struct OLNode *p;
int i;
for(i=1;i<=M.mu;i++)
{
if(M.rhead[i])
for(p=M.rhead[i];p;p=p->right)
Out3(p->i,p->j,p->e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -