一、仿照三元組或復數的抽象數據類型寫出有理數抽象數據類型的描述 (有理數是其分子、分母均為整數且分母不為零的分數)。有理數基本運算:
1、構造有理數T,元素e1,e2分別被賦以分子、分母值
2、銷毀有理數T
3、用e(引用類型參數)返回有理數T的分子或分母,當入參i為1時返回分子, i為2是返回分母。
4、將有理數T的分子或分母更改為e,入參i為1時改變分子, i為2是改變分母
5、有理數T1,T2相加,結果存入有理數T3
6、有理數T1,T2相減,結果存入有理數T3
7、有理數T1,T2相乘,結果存入有理數T3
8、有理數T1,T2相除,結果存入有理數T3
ADT RationalNumber{
數據對象:D = {e1,e2|e1,e2都屬於ElemType類型}
數據關系:R = {<e1,e2>}
基本操作:
InitRationalNumber(&T,e1,e2)
操作結果:構造一個有理數T,其分子和分母分別為e1和e2
DestoryRationalNumber(&T)
操作結果:銷毀有理數T
Get(T,i,&e)
操作結果:用e返回有理數T的分子或分母,i為1時返回分子, i為2是返回分母
Put(&T,i,e)
操作結果:將有理數T的分子或分母更改為e,i為1時改變分子, i為2是改變分母
AddRationalNumber(T1,T2,&T3)
操作結果:將T1,T2相加,結果存入T3
SubtractionRationalNumber(T1,T2,&T3)
操作結果:將T1,T2相減,結果存入T3
MultiplicationRationalNumber(T1,T2,&T3)
操作結果:將T1,T2相乘,結果存入T3
DivisionRationalNumber(T1,T2,&T3)
操作結果:將T1,T2相除,結果存入T3
} ADT RationalNumber
二、實驗
1、數據結構、函數說明
2、代碼實現說明
e1,e2是T1的分子分母;e3,e4是T2的分子分母 ;e5,e6是T3的分子分母
(1)相加
(2)相減
(3)相乘
(4)相除
(5)計算公約數:實現方法:輾轉相除法
3、結果展示
(1)測試1:T1>T2
(2)測試2:T1<T2
(3)測試3:T1=T2
(4)測試4:異常數據
4、總結
1. “數據結構”定義為一個二元組(D,S),即兩個集合,D是數據元素的集合,S是數據元素之間一個或多個關系的集合。
2. “抽象數據類型”本質是“數據類型”,與計算機相關,涉及數據的存儲及如何用存儲來反應數據元素之間的關系。它定義為一個三元組(D,S,P),加上的P是定義的一組針對存儲的數據操作(如插入,刪除,排序等)。
3. 抽象數據類型是一個數學模型以及定義在該模型上的一組操作,抽象數據類型的定義僅取決與它的一組邏輯特性,而與其在計算機內部如何表示和實現無關,即不論其內部結構如何變化,只要它的數字特性不變,都不影響其外部的使用。