用JAVA语言创建链表的方法
鏈表剛學(xué)習(xí)時(shí)是用c來學(xué)習(xí)的,那時(shí)候?qū)τ诮Y(jié)構(gòu)體,指針這些東西實(shí)現(xiàn)鏈表覺得很合適,但想要應(yīng)用到j(luò)ava上還是有些不同的
這里,我學(xué)習(xí)下用java來使用鏈表的方法:
首先,定義節(jié)點(diǎn)類
//鏈表節(jié)點(diǎn) class Node{ protected Node next; protected int data; public ?Node(int data) { ? //構(gòu)造器來賦值 // TODO Auto-generated constructor stub this.data=data; this.next=null; } public Node() {}}然后,在專門的一個(gè)類中寫鏈表的各種操作,符合java面向?qū)ο蟮脑O(shè)計(jì)
在這里,我們寫下所有的鏈表操作
1.鏈表初始化
public Node Initlink(Node node) { ?//初始化節(jié)點(diǎn) node=new Node(); node.next=null; return node;}傳入的節(jié)點(diǎn)是你的頭節(jié)點(diǎn),這里我們創(chuàng)建的鏈表是帶頭結(jié)點(diǎn)的,頭結(jié)點(diǎn)不帶信息,方便與鏈表操作
2.創(chuàng)建鏈表
利用while循環(huán),在循環(huán)內(nèi)部創(chuàng)建新節(jié)點(diǎn),利用頭插法插入此節(jié)點(diǎn)(尾插法節(jié)點(diǎn)會(huì)改變),理解與C語(yǔ)言中一樣,注意輸入。public Node createlink(Node node) { ? ?//頭插法創(chuàng)建鏈表
Scanner scanner=new Scanner(System.in);
int data=scanner.nextInt();
?
3.打印鏈表信息
根據(jù)傳入的頭結(jié)點(diǎn),打印整個(gè)鏈表信息
public void Printlink(Node L) { ? ? ? //打印輸出鏈表 Node node=L.next; while(node!=null) { System.out.println(node.data); node=node.next; }}寫在這差不多完了。如果實(shí)現(xiàn)鏈表的其他操作,根據(jù)已創(chuàng)建的鏈表去實(shí)現(xiàn)就很容易了。下面給出完整代碼:
package linklist;import java.util.Scanner; //鏈表節(jié)點(diǎn) class Node{ protected Node next; protected int data; public ?Node(int data) { ? //構(gòu)造器來賦值 // TODO Auto-generated constructor stub this.data=data; this.next=null; } public Node() {} } //鏈表方法 class Ways{ public Node Initlink(Node node) { ?//初始化節(jié)點(diǎn) node=new Node(); node.next=null; return node; } public Node createlink(Node node) { ? ?//頭插法創(chuàng)建鏈表 Scanner scanner=new Scanner(System.in); int data=scanner.nextInt();while (data!=999) { ? ? ? ? ? ? ?//輸入999結(jié)束 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("請(qǐng)輸入你要?jiǎng)?chuàng)建的鏈表(輸入999結(jié)束):");L=ways.createlink(L);ways.Printlink(L); } }?
最后是控制臺(tái)結(jié)果:
怎么樣,是不是很符合頭插法的特點(diǎn)呢?
總結(jié)
以上是生活随笔為你收集整理的用JAVA语言创建链表的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA中将带负数的String字符串转
- 下一篇: 判断一棵二叉树是否为平衡二叉树