當前位置:編程學習大全網 - 源碼下載 - java高手來,鏈表問題!!

java高手來,鏈表問題!!

class Node{

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的差不多,先寫這麽多吧,不懂再問

  • 上一篇:理想與現實的差距, Android 遊戲機 GameStick 動手玩
  • 下一篇:如何在 U 盤上安裝多個操作系統
  • copyright 2024編程學習大全網