Coundy

   漫步风中,倾听自己的脚步,在自我沉浸中,找寻逝去的灵魂

posts - 27,comments - 2,trackbacks - 0
code:

package com.algorithms;

/**
 * @author oracle
 *
 */

//下面注释掉的类是线性链表组合模式的实现
//
// class LineNode {
//
// private int id;
//
// private String name;
//
// private LineNode nextnode;
//
// public LineNode() {
// }
//
// public int getId() {
// return id;
// }
//
// public void setId(int id) {
// this.id = id;
// }
//
// public LineNode getNextnode() {
// return nextnode;
// }
//
// // composite pattern implements linear-list
// public void setNextnode(LineNode linenode) {
// if (this.nextnode == null)
// this.nextnode = linenode;
// else
// this.nextnode.setNextnode(linenode);
// }
//
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;
// }
// }


class LineNode {

    private int id;

    private String name;

    private LineNode nextnode;

    public LineNode() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public LineNode getNextnode() {
        return nextnode;
    }   
    public void setNextnode(LineNode linenode) {

        this.nextnode = linenode;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class LineList {
   //添加一个节点到线性链表中
    public static void addNode(LineNode linenode, LineNode root) {
        LineNode newnode = root;
        while (newnode != null) {
            // newnode = newnode.getNextnode();
            if (newnode.getNextnode() == null) {
                newnode.setNextnode(linenode);
                // root = newnode;
                newnode = null;
            } else {
                newnode = newnode.getNextnode();
            }

        }

    }
   //删除线性链表中的一个指定节点
    public static void deleteNode(LineNode linenode, LineNode root) {
        LineNode newnode = root;
        LineNode tempnode = null;
        while (newnode != null) {
            if (newnode.getNextnode() == linenode) {
                tempnode = newnode.getNextnode();
                if (tempnode.getNextnode() != null)
                    newnode.setNextnode(tempnode.getNextnode());
                tempnode = null;
                newnode = null;
            } else
                newnode = newnode.getNextnode();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        LineNode root = new LineNode();
        root.setId(0);
        root.setName("root");

        LineNode sonone = new LineNode();
        sonone.setId(1);
        sonone.setName("sonone");
        // root.setNextnode(sonone);
        LineList.addNode(sonone, root);

        LineNode sontwo = new LineNode();
        sontwo.setId(2);
        sontwo.setName("sontwo");
        // root.setNextnode(sontwo);
        LineList.addNode(sontwo, root);

        LineList.deleteNode(sonone, root);
    }
}

posted on 2007-04-09 03:23 Coundy 阅读(410) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: