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 阅读(409)
评论(0) 编辑 收藏 所属分类:
Java