java 结构体_Java实现单链表的简单操作
生活随笔
收集整理的這篇文章主要介紹了
java 结构体_Java实现单链表的简单操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 一、基本實現思路
- 二、代碼實現
- 1.定義結點類2.定義鏈表類3.測試調用4.結果
- 總結
前言
用Java實現單鏈表的簡單操作,閱讀本文和上一篇文章體會Java中類與C++中結構體指針的區別
提示:以下是本篇文章正文內容,下面案例可供參考
一、基本實現思路
二、代碼實現
1.定義結點類
package list.test01;/* *定義結點類*/public class Node { private int data;public Node next;public Node(int data) { this.data = data;}public int getData() { return data;}public void setData(int data) { this.data = data;}public void display() { System.out.println("data="+data);}}2.定義鏈表類
package list.test01;public class LinkList { //構造頭結點private Node first;//記錄結點位置private int pos=0;public LinkList() { this.first=null;}/** * 插入一個頭結點 */public void input(int data) { Node node=new Node(data);node.next=first;first=node;}/* * 刪除頭結點 并返回頭結點 */public Node delete() { Node tmpeNode=first;first =tmpeNode.next;return first;}/* * 在任意位置添加結點 */public void addList(int i,int data) { Node node=new Node(data);Node useNode=first;Node preNode=first;while (i!=pos) { preNode=useNode;useNode=useNode.next;pos++;}node.next=useNode;preNode.next=node;pos=0;}/* * 在任意位置刪除結點 */public Node delete(int i) { Node preNode=first;Node useNode = first;if(first==null) { return first;}while(i!=pos) { preNode=useNode;useNode=useNode.next;pos++;}preNode.next=useNode.next;pos=0;return useNode;}/* * 頭插法建立鏈表 */public void Initlist(int a[]) { for (int i = 0; i < a.length; i++) { Node node=new Node(a[i]);node.next=first;first=node;}}/* * 尾插法建鏈表 */public void InitList2(int a[]) { Node qNode=first;for (int i = 0; i < a.length; i++) { Node node=new Node(a[i]);qNode.next=node;qNode=node;}}/* * 查詢結點信息為data的位置 */public int findList(int data) { Node useNode=first;if(first==null) { System.out.println("該鏈表為空!");return 0;}while(useNode.getData()!=data) { useNode=useNode.next;pos++;}int i=pos;pos=0;System.out.println("該元素在第"+i+"位置");return i;}/* * 顯示鏈表中的結點信息 */public void displayall() { Node useNode=first;while(useNode!=null) { useNode.display();useNode=useNode.next;}System.out.println();}}3.測試調用
package list.test01;public class Test { public static void main(String[] args) { // TODO Auto-generated method stubLinkList laLinkList=new LinkList();//檢驗插入頭結點laLinkList.input(10);laLinkList.input(20);laLinkList.input(30);System.out.println("顯示插入的三個頭結點元素");laLinkList.displayall();//檢驗任意位置插入結點laLinkList.addList(1, 1);laLinkList.addList(2, 2);laLinkList.addList(3, 3);System.out.println("顯示任意位置插入元素的值");//顯示結點信息laLinkList.displayall();//刪除值為2的結點System.out.println("顯示刪除功能");Node deleNode=laLinkList.delete(2);System.out.println("===============");//顯示刪除結點的信息deleNode.display();System.out.println("=============");//顯示全部信息laLinkList.displayall();System.out.println("---------------------");System.out.println("下面是查詢");//查詢元素為3的位置laLinkList.findList(3);System.out.println("---------------------");int a[]= { 1,2,3,4,5};LinkList laLinkList2=new LinkList();//頭插法建鏈表System.out.println("下面是頭插法建鏈表");laLinkList2.Initlist(a);laLinkList2.displayall();System.out.println("下面是尾插法");LinkList laLinkList3=new LinkList();//先插入一個頭結點laLinkList3.input(0);laLinkList3.InitList2(a);laLinkList3.displayall();//Node n1=new Node(20);//n1.display();}}4.結果
總結
以上用Java實現了單鏈表的簡單操作,在C、C++里面有結構體、指針等 鏈表理解較為簡單,但是Java里用類去代替結構體的功能,在Java中類是引用型,從而代替指針。以上是初學者對Java單鏈表的理解,還不是很明白。求大佬指點。歡迎閱讀!
總結
以上是生活随笔為你收集整理的java 结构体_Java实现单链表的简单操作的全部內容,希望文章能夠幫你解決所遇到的問題。