回 帖 发 新 帖 刷新版面

主题:人民币换几个算法题目答案。谢谢!

1.假设哈希函数为h(key),编写用链地址方法解决冲突的哈希表的插入和删除算法。
 
2.设计一个算法,利用哈夫曼编码简易压缩一个英文文档。
 
3 。若将稀疏矩阵A的非零元素以行序为主序的顺序存于一维数组V中,并用二维数组B表示A中的相应元素是否为零元素(以0和1分别表示非零元素和零元素)。试写一算法,实现在上述表示法中实现矩阵相加运算。
 
4.随机输入10个数字,放到一个数组中。请给出一个算法。计算值X出现的次序和出现的总次数。

5.设计一个算法,建立一个链表,对链表进行升序排序,并输出到屏幕上。要求:1.排序时不使用指针2排序时不移动结点

6.我国典型地物标准波谱数据库中管理了大量地面典型目标的波谱数据和目标的描述参数,以3到4月的小麦为例,有单株小麦上不同位置上叶片的观测波谱,有在单位小麦面积上方顶部的冠层观测波谱,期中波谱数据反映观测目标对入射光反射能力随着波谱变化,表示为(ak,rk),描述数据表示叶片的位置或者群体的结构信息,请设计数据结构和程序,首先完成目标描述,然后检索出不同小麦株或者不同冠层小麦波谱数据。



以上算法请用最简洁的c语言描述,第3题不用做了。

联系方式qq:183246483
lxlwork@163.com

回复列表 (共1个回复)

沙发

第3题答案
【参考答案】
#define MAXVSIZE 非零元个数的最大值
#define MAXBSIZE 矩阵行,列数最大值
typedef struct{
int V[MAXSIZE]; //用以保存非零元的一维数组分量
int B[MAXBSIZE][MAXBSIZE]; //用以标记零元素和非零元素的二维数组B
int mu; //矩阵行数
int nu; //矩阵列数
int tu; //非零元个数
}Matrix;
Status Add(Matrix A1,Matrix A2,Matrix &A){//A=A1+A2
if (A1.mu!=A2.mu||A1.nu!=A2.nu) return ERROR;//两矩阵行列数不同
A.mu=A1.mu; A.nu=A1.nu; //和矩阵的行列数与求和矩阵相同
for (i=0;ifor(j=0;j A.B[i][j]=0;
//初始化和矩阵的标记数组
k=0;k1=0;k2=0;
//k为A.V中存放新非零元的位置
//k1为A1中当前非零元下标,k2为A2中当前非零元下标
for (i=0;ifor(j=0;jif (A1.B[i][j]){ //A1的当前位置有非零元
if (A2.B[i][j]){ //A2的当前位置也有非零元,需求和
t=A1.V[k1++]+A2.V[k2++];
if (t){ //和非零,生成A中新非零元
A.V[k++]=t;
A.B[i][j]=1;
}
else{ //A2的当前位置无非零元,以A1的当前非零元为A中新非零元
A.V[k++]=A1.V[k1++];
A.B[i][j]=1;
}//else
}//if
else{ //A1的当前位置无非零元
if (A2.B[i][j]){ //A2的当前位置有非零元,以A2的当前非零元为A中新非零元
A.V[k++]=A2.V[k2++];
A.B[i][j]=1;
}//if
}//else
A.tu=k;
return OK;
}//add

我来回复

您尚未登录,请登录后再回复。点此登录或注册