广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3769 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
rakish
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Java] JAVA 资料结构 ADT??
import java.io.*;
public class DS_Ratinoal{
public static void main(String args[]){
Ratinoal a = new Ratinoal(34,10);
Ratinoal b = new Ratinoal(3,5);

System.out.println(a.m+"/"+a.n);
System.out.println(b.m+"/"+b.n);
Ratinoal c = min(add(a,b));
System.out.println("add="+c.m+"/"+c.n);
Ratinoal d = min(sub(a,b));
..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



人一但长大了
就发现世上的事不像想的那么好
你总是会一天天长大的
会看得越来越清楚
献花 x0 回到顶端 [楼 主] From:台湾 | Posted:2005-11-25 14:51 |
youchun
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x26
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

建议把 m, n 设成 private
只透过 Rational object 来处理
不过就必须使用 getter, setter
虽然设计上不错
可是就小程式而言会显得麻烦

加减之类的函式可以并入 Rational
视为其设计上得一部分
也可以试试看用 toString() 简化一些流程

如果要保留其值的话可考虑复写 clone()
甚至可以仿照 String class 设为 final
复制程式
class Rational{
       int m;
       int n;
       public Ratinoal(int m,int n){this.m=m;this.n=n;}

       /* System.out.println(<Rational obj>) */
       public String toString() {
         return String.valueOf(m) + "/" + String.valueOf(n);;
       }
       public void add(Rational r) {}
       /* alternative
        * public Rational add(Rational r) { return new Rational(...);}
        */
}


献花 x1 回到顶端 [1 楼] From:台湾中华电信 | Posted:2005-11-25 17:00 |
rakish
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x18
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

可是这样感觉就怪怪的...
现在的运算是Rational + Rational
现在把运算写在Rational 的类别里面?? a.add(b) ??

还是写一个继承出来?

另外就是..java的好像没有指标的样子??
他的link list 是用什么方法阿??
感谢!!


人一但长大了
就发现世上的事不像想的那么好
你总是会一天天长大的
会看得越来越清楚
献花 x0 回到顶端 [2 楼] From:台湾 | Posted:2005-11-26 17:22 |
youchun
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x26
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

1)
因为 Java 不像 C++ 可以自由地作 operator overloading
使用 a.add(b) 比较可行, 也可搭配
复制程式
public class Rational {
    public Rational add(Rational r) {
        ...
        return this;
    }
}
如此以来便可以 a.add(b).add(c).add(d);
不过 a 的值亦会改变

如果要不可变, 可采以下方法
不过不可被继承
复制程式
public final class Rational {
    public Rational add(Rational r) {
        ...
        return new Rational(...);
    }
}

2)
Java 除了 primitive type 外都是 Object
primitive type 如 int, boolean, double, etc..
wrapper object 有 Integer, Boolean, Double, etc..
primitive type 存放在 stack, 包括 object reference
object 实际上存放在 heap, 透过 object reference 操作
也有人认为这实际上还算是指标, 不过建议还是视为物件来处理

3)
linkedlist 请参阅 API doc java.util.LinkedList


献花 x0 回到顶端 [3 楼] From:台湾中华电信 | Posted:2005-11-26 19:14 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.018271 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言