private String name; //數據
private Node nextNode; //下壹個節點的引用
public Node(){ //默認構造函數
this.name = "表頭";
System.out.println("ddd");
}
public Node(String name){ //初始化數據
this.setName(name);
}
//以下的是getter和setter,就不解釋了吧……
public void setName(String name){
this.name = name;
}
public void setNextNode(Node nextNode){
this.nextNode = nextNode;
}
public String getName(){
return name;
}
public Node getNextNode(){
return nextNode;
}
}
class LinkNode{
private static Node node;
private static Node firstNode = new Node(); //第壹個節點
private static LinkNode linkNode = new LinkNode(firstNode);
private LinkNode(Node node){
this.setNode(node);
}
public static LinkNode getLinkNode(){
return linkNode;
}
public void setNode(Node node){
this.node = node;
}
public Node getNode(){
return node;
}
public Node getFirstNode(){
return firstNode;
}
public void addNode(String name){ //增加節點操作
Node node = new Node(name); //新建節點
this.getNode().setNextNode(node); //接到當節點後
this.setNode(node);
}
public boolean delNode(String name){ //刪除內容為輸入的節點,成功返回真
Node temp;
Node node = this.getFirstNode();
while(node.getNextNode()!= null){
temp = node;
if(node.getName().equals(name)){ //當節點的內容與輸入相等,則該節點的前壹節點的下壹節點指到下壹個(就是跳過此節點)
node = node.getNextNode();
temp.setNextNode(temp.getNextNode().getNextNode());
break;
}
return true;
}
return false;
}
public String selectNode(String name){ //查找節點操作
Node node = this.getFirstNode();
while(node.getNextNode()!= null){
if(!node.getName().equals(name)){ ////當節點的內容與輸入相等,查找成功
node = node.getNextNode();
continue;
}
return "查找內容在此表中!";
}
return "沒有要查找的內容!!";
}
public String displayLinkNode(){ //顯示鏈表操作,鏈表用壹個字符串表示,格式為:第壹個數據->第二個數據……->最後壹個數據
String temp = "鏈表:";
Node node = this.getFirstNode();
while(node.getNextNode() != null){
temp += node.getName();
temp += "-->";
node = node.getNextNode();
}
return temp + "表尾";
}
public static void main(String args[]){ //主函數
LinkNode ln = LinkNode.getLinkNode();
ln.addNode("girl"); //增加節點
ln.addNode("boy");
ln.addNode("ggg");
ln.addNode("hhhh");
ln.delNode("girl"); //刪除節點
System.out.println(ln.displayLinkNode()); //顯示鏈表
System.out.println(ln.selectNode("boy")); //查找數據為boy
}
}
其實和C的差不多,先寫這麽多吧,不懂再問