第章习题及解答.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章习题及解答

⒈假设按行优先存储整数数组A[9][3][5][8]时,第一个元素的字节地址是100,每个整数占4个字节。问下列元素的存储地址是什么? ⑴a0000 ⑵a1111 ⑶a3125 ⑷a8247 ⑴a0000 的存储地址是100。 ⑵a1111 的存储地址是776。 ⑶a3125 的存储地址是1784。 ⑷a8247 的存储地址是4416。 ⒉设有三对角矩阵An×n,将其三条对角线上的元素存于数组B[3][n]中,使得元素B[u][v]=aij,试推导出从(i,j)到(u,v)的下标变换公式。 u = i v = {j if i≤2 | j-i+2 if i2} ⒊假设一个准对角矩阵: 按以下方式存储于一维数组B[4m]中: 0 1 2 3 4 5 6 … k … 4m-1 4m a 11 a 12 a21 a22 a33 a34 a43 … aij … a2m-1,2m a2m,2m-1 a2m,2m 写出由一对下标(i,j)求k的转换公式。 略 ⒋现有如下的稀疏矩阵A(如图所示),要求画出以下各种表示方法。 ⑴三元组表示法。 ⑵十字链表法。 略 ⒌画出下列广义表的存储结构示意图。 ⑴A=((a,b,c),d,(a,b,c)) ⑵B=(a,(b,(c,d),e),f) 略 ⒍对于二维数组A[m][n],其中m=80,n=80,先读入m,n,然后读该数组的全部元素,对如下三种情况分别编写相应算法: ⑴求数组A靠边元素之和。 ⑵求从A[0][0]开始的互不相邻的各元素之和。 ⑶当m=n时,分别求两条对角线的元素之和,否则打印m!=n的信息。 ⒎有数组A[4][4],把1到16个整数分别按顺序放入A[0][0]...A[0][3],A[1][0]...A[1][3],A[2][0] ...A[2][3],A[3][0]...A[3][3]中,编写一个算法获取数据并求出两条对角线元素的乘积。 int mul (int A[4][4]) { int k=1,s=1; for (i=0; i4 ;i++) for (j=0 ;j4 ;j++) { A[i][j] =k; k++; } for (i=0; i4 ;i++) { s* = A[i][i]; s* = A[i][3-i]; } return(s); } ⒏n只猴子要选大王,选举办法如下:所有猴子按1,2,...,n编号围坐一圈,从第1号开始按1、2、...、m报数,凡报m号的退出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。n和m由键盘输入,打印出最后剩下的猴子号。编写一个算法实现。 typedef struct node{ int data; struct node *next; }Node ,*LkList; void process (int n, int m) { L=new Node; L-data=1; L-next =L; rear =L; for (i=2 ;i=n ;i++) { s=new Node; s-data=i; s-next=rear-next; rear-next = s; rear = s; } p=L; while (p-next != p) { i=1; while (im) { q=p; p=p-next; i++; } q-next=p-next; coutp-dataendl; delete p; p=q-next; } cout”the last monky is : ” p-dataendl; } ⒐假设稀疏矩阵A和B(具有相同的大小m*n)都采用三元组表示,编写一个算法计算C=A+B,要求C也采用三元组表示。 参见教科书 ⒑假设稀疏矩阵A和B(分别为m*n和n*1矩阵)采用三元组表示,编写一个算法计算C=A*B,要求C也是采用稀疏矩阵的三元组表示。 #define SMAX 1024 typedef struct{ int i; int j; datatype v; }SPNode; typedef struct{ SPNode data[SMAX]; /*0号单元未用*/ int mu; int nu; int tu; }SPMatrix; SPMatrix *Matrix_add (SPMatrix *A,SPMatrix *B) { SPMatrix *C; C-mu = A-mu; C-nu = A-nu; C-tu = 0; pa=1 ; pb =1 ; pc=1; while (pa=A-tu pb=B-tu) { if ((

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档