题目
数据结构的问题。帮帮我吧1.设有数据结构(D,R),其中D=(d1,d2,d3,d4),R=(r),r=((d1,d2),(d2,d3),(d3,d4)).试按图论中的画法惯例画出其逻辑结构图 2.试仿照三元组的抽象数据类型分别写出抽象数据类别复数和有理数的 定义(有理数是其分子,分母均为自然数且分母不为零的分数)。
数据结构的问题。帮帮我吧1.设有数据结构(D,R),其中D={d1,d2,d3,d4},R={r},r={(d1,d2),(d2,d3),(d3,d4)}.试按图论中的画法惯例画出其逻辑结构图 2.试仿照三元组的抽象数据类型分别写出抽象数据类别复数和有理数的 定义(有理数是其分子,分母均为自然数且分母不为零的分数)。
题目解答
答案
1线性结构d1-d2-d3-d4 2复数定义 ADT Complex { 数据对象:D={<e1,e2> | e1,e2∈R (R为实数集合) } 数据关系:R={ <e1,e2> ,e1是复数的实部,e2是复数的虚部,即:e1+j e2 } 基本操作: InitComplex(&T,v1,v2) 操作结果:构造复数T,元素e1,e2分别被赋以参数v1,v2的值 DestroyComplex(&T) 初始条件:复数T已存在 操作结果:复数T被销毁 GetComplex(T,i,&e) 初始条件:复数T已存在, i∈{1,2} 操作结果:用e返回复数T的实部或虚部,i=1返回实部, i=2返回虚部 PutComplex(T,i,e) 初始条件:复数T已存在, i∈{1,2} 操作结果:改变复数T实部或虚部为e,i=1改变实部, i=2改变虚部 AddComplex(T1,T2,&T3) 初始条件:复数T1,T2已存在 操作结果:复数T1,T2相加,结果存入复数T3 SubComplex(&T1,T2,&T3) 初始条件:复数T1,T2已存在 操作结果:复数T1,T2相减,结果存入复数T3 MulComplex(&T1,T2,&T3) 初始条件:复数T1,T2已存在 操作结果:复数T1,T2相乘,结果存入复数T3 DivComplex(&T1,T2,&T3) 初始条件:复数T1,T2已存在 操作结果:复数T1,T2相除,结果存入复数T3 } ADT Complex 有理数ADT定义: ADT Rational_Num { 数据对象:D={<e1,e2> | e1,e2∈I (I为整数集合) } 数据关系:R={ <e1,e2> ,e1是有理数的分子,e2是有理数的分母,且e2≠0,即: } 基本操作: InitRational_Num(&T,v1,v2) 操作结果:构造有理数T,元素e1,e2分别被赋以参数v1,v2的值 DestroyRational_Num(&T) 初始条件:有理数T已存在 操作结果:有理数T被销毁 GetRational_Num(T,i,&e) 初始条件:有理数T已存在, i∈{1,2} 操作结果:用e返回有理数T的分子或分母,i=1返回分子, i=2返回分母 PutRational_Num(T,i,e) 初始条件:有理数T已存在, i∈{1,2} 操作结果:改变有理数T的分子或分母为e,i=1改变分子, i=2改变分母 AddRational_Num(T1,T2,&T3) 初始条件:有理数T1,T2已存在 操作结果:有理数T1,T2相加,结果存入有理数T3 SubRational_Num(&T1,T2,&T3) 初始条件:有理数T1,T2已存在 操作结果:有理数T1,T2相减,结果存入有理数T3 MulRational_Num(&T1,T2,&T3) 初始条件:有理数T1,T2已存在 操作结果:有理数T1,T2相乘,结果存入有理数T3 DivRational_Num(&T1,T2,&T3) 初始条件:有理数T1,T2已存在 操作结果:有理数T1,T2相除,结果存入有理数T3 } ADT Rational_Num