您的位置:首页 > 理论基础 > 数据结构算法

以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法

2014-06-22 18:21 453 查看
 试编写一个以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法。

稀疏矩阵的十字链表存储表示:

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,依次以三元组格式输出十字链表表示的矩阵 */
{
int i;
OLink p;
for(i = 1;i <= M.mu; i++){
p = M.rhead[i]; //p指向每一行的基址
while(p){
Out3(p -> i,p -> j,p -> e);
p = p -> right; //p向右移
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐