第一章绪习 题 一 1
有下列几种用二元组表示的数据结构,试画出它们分别对应的图形表示(当出现多个关系时, 对每个关系画出相应的结构图),并指出它们分别属于何种结构
⑴ A=(K,R)其中 K={a1,a2,a3
,an} R={} ⑵ B=(K,R)其中 K={a,b,c,d,e,f,g,h} R={r} r={,,,,,,} ⑶ C=(K,R)其中 K={a,b,c,d,f,g,h} R={r} r={,,,,,,} ⑷ D=(K,R)其中 K={1,2,3,4,5,6} R={r} r={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)} ⑸ E=(K,R)其中 K={48,25,64,57,82,36,75,43} R={r1,r2,r3} r1={,,,,,,} r2={,,,,,,} r3={,,,,,,} 解:⑴是集合结构;⑵是线性结构;⑶⑷是树型结构;⑸散列结构
设计二次多项式 ax2+bx+c 的一种抽象数据类型,假定起名为QIAdratic, 该类型的数据部分分为三个系数项a、b 和 c,操作部分为:(请写出下面每一个 操作的具体实现)
⑴ 初始化数据成员 ab 和 c(假定用记录类型 Quadratie 定义成员),每个数据成 员的默认值为 0
Quadratic InitQuadratic(float aa=0,float bb=0,float cc=0); 解: Quadratic InitQuadratic(float aa,float bb,float cc) { Quadratic q; q
a=aa; q
b=bb; q
c=cc; return q; } ⑵ 做两个多项式加法,即使对应的系数相加,并返回相加的结果
Quadratic Add(Quadratic q