用JAVA语言创建链表的方法
生活随笔
收集整理的這篇文章主要介紹了
用JAVA语言创建链表的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈表剛學習時是用c來學習的,那時候對于結構體,指針這些東西實現鏈表覺得很合適,但想要應用到java上還是有些不同的
這里,我學習下用java來使用鏈表的方法:
首先,定義節點類
//鏈表節點 class Node{ protected Node next; protected int data; public ?Node(int data) { ? //構造器來賦值 // TODO Auto-generated constructor stub this.data=data; this.next=null; } public Node() {}}然后,在專門的一個類中寫鏈表的各種操作,符合java面向對象的設計
在這里,我們寫下所有的鏈表操作
1.鏈表初始化
public Node Initlink(Node node) { ?//初始化節點 node=new Node(); node.next=null; return node;}傳入的節點是你的頭節點,這里我們創建的鏈表是帶頭結點的,頭結點不帶信息,方便與鏈表操作
2.創建鏈表
利用while循環,在循環內部創建新節點,利用頭插法插入此節點(尾插法節點會改變),理解與C語言中一樣,注意輸入。public Node createlink(Node node) { ? ?//頭插法創建鏈表
Scanner scanner=new Scanner(System.in);
int data=scanner.nextInt();
?
3.打印鏈表信息
根據傳入的頭結點,打印整個鏈表信息
public void Printlink(Node L) { ? ? ? //打印輸出鏈表 Node node=L.next; while(node!=null) { System.out.println(node.data); node=node.next; }}寫在這差不多完了。如果實現鏈表的其他操作,根據已創建的鏈表去實現就很容易了。下面給出完整代碼:
package linklist;import java.util.Scanner; //鏈表節點 class Node{ protected Node next; protected int data; public ?Node(int data) { ? //構造器來賦值 // TODO Auto-generated constructor stub this.data=data; this.next=null; } public Node() {} } //鏈表方法 class Ways{ public Node Initlink(Node node) { ?//初始化節點 node=new Node(); node.next=null; return node; } public Node createlink(Node node) { ? ?//頭插法創建鏈表 Scanner scanner=new Scanner(System.in); int data=scanner.nextInt();while (data!=999) { ? ? ? ? ? ? ?//輸入999結束 Node pNode=new Node(data); pNode.next=node.next; node.next=pNode; data=scanner.nextInt(); }return node; } public void Printlink(Node L) { ? ? ? //打印輸出鏈表 Node node=L.next; while(node!=null) { System.out.println(node.data); node=node.next; } } } public class Main {public static void main(String[] args) { // TODO Auto-generated method stub Ways ways=new Ways(); Node L=new Node();L=ways.Initlink(L);System.out.println("請輸入你要創建的鏈表(輸入999結束):");L=ways.createlink(L);ways.Printlink(L); } }?
最后是控制臺結果:
怎么樣,是不是很符合頭插法的特點呢?
總結
以上是生活随笔為你收集整理的用JAVA语言创建链表的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA中将带负数的String字符串转
- 下一篇: 判断一棵二叉树是否为平衡二叉树