⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5.24.c

📁 部分高校使用anyview编程测试数据结构习题,此代码为数据结构题集(c语言版)严蔚敏版的课后习题答案.专门提供给在anyview上运行,全部为通告代码
💻 C
字号:
5.24② 三元组表的另一种变型是,不存矩阵元素的行、
列下标,而存非零元在矩阵中以行为主序时排列的顺序
号,即在LOC(0,0)=1,l=1时按教科书5.2节中公式(5-4)
计算出的值。试写一算法,由矩阵元素的下标值i,j求
元素的值。

要求实现以下函数:
Status GetElem(TISMatrix M, int i, int j, int &e);
/* 求行优先序号二元组矩阵的元素A[i][j]的值e */

稀疏矩阵的优先序号二元组顺序表的类型TISMatrix的定义:
typedef struct {
  int     ri; // 该元素在以行为主序排列时的序号
  ElemType e;
} NodeI;

typedef struct {
  NodeI  data[MAXSIZE];
  int    mu,nu,tu;
} TISMatrix; // 行优先序号二元组矩阵类型
Status GetElem(TISMatrix M, int i, int j, int &e)
/* 求行优先序号二元组矩阵的元素A[i][j]的值e */
{
  int pos,p;
  if(i<1||i>M.mu||j<1||j>M.nu) return ERROR;
  pos=(i-1)*M.nu+(j-1)+1;
  for(p=1;p<=M.tu&&M.data[p].ri<pos;p++);   //比较非0元素行主序序号与目标点序号,小于就换下一个非0元素
                                            //非0元素行主序序号呈递增
  if(M.data[p].ri!=pos) 
    {if(p<=M.tu){e=0;return OK;}            //没有找到
     else return ERROR;
      }
  e=M.data[p].e;                            //找到
  return OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -