2016年度广工AnyView数据结构第5章标准答案
- 格式:doc
- 大小:35.64 KB
- 文档页数:37


C Anyview 7-9章作业参考答案
/**********
【习题7.010】写一函数求3个整数中最小的数。
**********/
int min(int x, int y, int z)
/* 返回3个整数x,y和z中最小的数 */
{
if(x>y)
x=y;
if(x>z)
x=z;
return x;
}
/**********
【习题7.020】编写函数,求用1元、5元和10元三种纸币
支付n元钱共有多少种支付法?
例如,16元可有6种支付方法:
方法 1 2 3 4 5 6
10元 0 0 0 0 1 1
5元 0 1 2 3 0 1
1元 16 11 6 1 6 1
**********/
int change(int n)
{
int i,j,k,m=0;
for(i=0;i<=n;i++)
for(j=0;j<=n/5;j++)
for(k=0;k<=n/10;k++)
if(i+5*j+10*k==n)
m++;
return m;
}
/**********
【习题7.030】先编写一个判断素数的函数。再编写一个函数
将一个偶数表示为两个素数之和,并返回其中较小的素数。
注:素数指只能被1和自身整除的正整数。规定0,1不是素数。
**********/
int prime(int n)
/* 判断素数,如果是素数返回1,不是素数则返回0 */
{ int t;
if(n==1)
return 0;
for(t=2;t<=(n/2);t++)
if(n%t==0)
return 0;
我下vip免费资源网
第五章 数组和广义表答案
一、选择题
1.B 2.1L 2.2J 2.3C 2.4I 2.5C 3.B 4.B 5.A 6.1H 6.2C 6.3E
6.4A 6.5F 7.B 8.1E 8.2A 8.3B 9.B 10.B 11.B 12.B 13.A 14.B
15.B 16.A 17.C 18.D 19.C 20.D 21.F 22.C 23.D 24.C 25.A 26.C
27.A
二、判断题
1. × 2.√ 3.√ 4.× 5.× 6. × 7.√ 8.× 9.× 10.× 11.× 12.√
13.√ 14.√
部分答案解释如下。
1. 错误。对于完全二叉树,用一维数组作存储结构是效率高的(存储密度大)。
4. 错误。数组是具有相同性质的数据元素的集合,数据元素不仅有值,还有下标。因此,可以说数祖是元素值和下标构成的偶对的有穷集合。
5. 错误。数组在维数和界偶确定后,其元素个数已经确定,不能进行插入和删除运算。
6. 错误。稀疏矩阵转置后,除行列下标及行列数互换外,还必须确定该元素转置后在新三元组中的位置。
8. 错误。广义表的取表尾运算,是非空广义表除去表头元素,剩余元素组成的表,不可能是原子。
9. 错误。广义表的表头就是广义表的第一个元素。只有非空广义表才能取表头。
10. 错误。广义表中元素可以是原子,也可以是表(包括空表和非空表)。
11. 错误。广义表的表尾,指去掉表头元素后,剩余元素所组成的表。
三、填空题
1. 顺序存储结构 2.(1)9572(2)1228 3.(1)9174(2)8788 4. 1100
5. 1164 公式:LOC(aijk)=LOC(a000)+[v2*v3*(i-c1)+v3*(j-c2)+(k-c3)]*l (l为每个元素所占单元数)
6. 232 7. 1340 8. 1196 9. 第1行第3列
第 5 章 数组和广义表 一、选择题
1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,
每个元素占一个地址空间,则a85的地址为( )。【燕山大学 2001 一、2 (2分)】 A. 13 B. 33 C. 18 D. 40
2. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组的体积是(①)个字节。假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个
元素的第一个字节的地址是(②)。若按行存储,则A[2,4]的第一个字节的地址是(③)。若按列存储,则A[5,7]的第一个字节的地址是(④)。就一般情况而言,当(⑤)时,按行存储的A[I,J]地址与按列
存储的A[J,I]地址相等。供选择的答案:【上海海运学院 1998 二、2 (5分)】 ①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120
G. 156 H. 234 I. 276 J. 282 K. 283 L. 288 ⑤: A.行与列的上界相同 B. 行与列的下界相同
C. 行与列的上、下界都相同 D. 行的元素个数与列的元素个数相同 3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首
地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225
【南京理工大学 1997 一、8 (2分)】 4. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。【福州大学 1998 一、10 (2分)】 A. 808 B. 818 C. 1010 D. 1020
数据结构习题5答案
数据结构习题5答案
在学习数据结构的过程中,习题是我们巩固知识的重要途径。习题不仅能够帮助我们理解和掌握数据结构的概念和原理,还能够提升我们的解决问题的能力。本文将对数据结构习题5进行详细解答,帮助读者更好地理解和运用相关知识。
习题1:给定一个链表的头节点,判断链表是否有环。
解答:判断链表是否有环,可以使用快慢指针的方法。定义两个指针,一个指针每次移动一个节点,另一个指针每次移动两个节点。如果链表有环,那么两个指针必定会相遇;如果链表没有环,那么快指针会先到达链表的末尾。
具体实现如下:
```python
def has_cycle(head):
if not head or not head.next:
return False
slow = head
fast = head.next
while slow != fast:
if not fast or not fast.next:
return False
slow = slow.next
fast = fast.next.next
return True ```
习题2:给定一个链表的头节点和一个目标值,在链表中删除所有等于目标值的节点。
解答:删除链表中等于目标值的节点,需要遍历链表,找到目标值并删除。由于链表的删除操作需要修改指针指向,因此需要维护一个指向当前节点的前一个节点的指针。
具体实现如下:
```python
def remove_elements(head, val):
dummy = ListNode(0)
dummy.next = head
prev = dummy
curr = head
while curr:
if curr.val == val: