| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1457 人关注过本帖
标题:一个链表应用的问题
只看楼主 加入收藏
X15810803158
Rank: 2
等 级:论坛游民
帖 子:49
专家分:36
注 册:2015-2-24
结帖率:91.67%
收藏
已结贴  问题点数:5 回复次数:3 
一个链表应用的问题

package mypro01;

class Book{//定义一个图书类
    private String name;//书名
    private double price;//价钱
    public Book(String name,double price){
        this.name = name;
        this.price = price;
    }
    public String getInfo(){
        return "书名"+this.name+" ,书价格"+this.price;
    }
    //比较两个对象
    public boolean compara(Book book){
        if(book == null){
            return false;
        }
        if(this == book){
            return true;
        }
        if(this.name.equals(book.name) && this.price == book.price ){
            return true;
        }else{
            return false;
        }
    }
   
   
   
}

class Link{//定义一个链表类
    private class Node{
        private Book date;
        private Node next;
        public Node(Book date){
            this.date = this.date;
        }
        public void addNode(Node newNode){
            if(this.next == null){
                this.next = newNode;
            }else{
                this.next.addNode(newNode);
            }
        }
        
        public boolean containsNode(Book date){
            if((this.date)){
                return true;
            }else{
                if(this.next == null){
                return false;
            }
                else{
                    return this.next.containsNode(date);
                            }
                }
        }//以上是内部类
    }
    private Node root;//根节点
    private int count = 0;//个数
    //增加数据
    public void add(Book date){
        Node newNode = new Node(date);
        if(this.root == null){//根节点为空
            this.root = newNode;
        }else{
            this.root.addNode(newNode);
        }
        count++;
    }
    //返回个数
    public int size(){
        return this.count;
    }
    //判断是否包含数据
    public boolean contains (Book date){
        if(date == null && this.root == null){
            return false;
        }else{
            return this.root.containsNode(date);
        }
    }
   
}

public class LinkDe {
   
    public static void main(String[] args){
        Link a = new Link();
        a.add(new Book("java",34.2));
        a.add(new Book("c",23.1));
        System.out.println(a.size());
        System.out.println(a.contains(new Book("java",34.2)))    ;
    }

}
搜索更多相关主题的帖子: private package public double return 
2016-12-25 21:03
X15810803158
Rank: 2
等 级:论坛游民
帖 子:49
专家分:36
注 册:2015-2-24
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-12-25 21:05
X15810803158
Rank: 2
等 级:论坛游民
帖 子:49
专家分:36
注 册:2015-2-24
收藏
得分:0 
为什么打印的是false??
2016-12-25 21:06
crf1205
Rank: 2
等 级:论坛游民
威 望:1
帖 子:11
专家分:15
注 册:2016-11-28
收藏
得分:5 
原因很简单,你新建了两个对象,new Book("JAVA",34.2),你写两次,就表示你创建了两个对象,每个对象的属性都是一样的,但是在内存中的地址是不同的。
2016-12-25 21:35
快速回复:一个链表应用的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031067 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved