日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java单链表查询功能,Java 实现简答的单链表的功能

發布時間:2023/12/4 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java单链表查询功能,Java 实现简答的单链表的功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:林子木 ?博客網址:http://blog.csdn.net/wolinxuebin

參考網址:http://blog.csdn.net/sunsaigang/article/details/5751780

描寫敘述:使用java實現簡答的單鏈表的功能

定義了一個MyList類

包括的函數:

getHead()返回頭指針。

isEmpty() 推斷是否為空;

addFirst(T element)在鏈表的頭部增加元素。

addLast(T element)在鏈表的尾部增加元。

add(T fix,T element)在指定元素fix后插入新的元素

remove(T element)?刪除指定元素

contains(T element)查看是否包括某元素

printList()打印鏈表。

其它:

使用泛型

程序代碼例如以下:

public class MyList{ //使用泛型

/*

* 定義節點類Node

*/

private static class Node{

T element;

Node next;

Node(T element,Node next){ //構造函數

this.element = element;

this.next = next;

}

Node(T element){ //構造函數

this(element,null); //調用上面的構造函數

}

}

//定義MyList成員

private Node head; //定義頭結點

/*

*構造函數

*/

MyList(){

head = null;

}

/*

*返回頭指針

*/

public Node getHead(){

return head;

}

/*

*查看鏈表是否為空

*/

public boolean isEmpty(){

return null == head; //推斷是否為空

}

/*

*將元素增加鏈表頭

*/

public void addFirst(T element){

if(isEmpty()) head = new Node(element);

else head = new Node(element,head);

}

/*

*將元素增加鏈表尾

*/

public void addLast(T element){

if(isEmpty()) head = new Node(element);//假設為空

else {

Node node = head; //不為空,就使用查找,知道表尾

while(node.next != null) node = node.next;

node.next = new Node(element);

}

}

/*

*在指定元素后增加新元素

*/

public boolean add(T fix,T element){

if(isEmpty()) return false;

else {

Node node = head; //定義中間變量

while(node.element != fix && null != node.next){//程序跳出條件為1、到表尾 2、找到這個元素

node = node.next; //查找是否含有元素

}

//這里採用直接使用while查找,而推斷在while外面。能夠加高速度

if(node.element == fix){ //這里首先推斷是否找到元素

node.next = new Node(element,node.next) ;//將element插入。并將element的next指向下一個元素

return true;

}

else

return false;

}

}

/*

*刪除指定元素

*/

public boolean remove(T element){

if(isEmpty()) return false;

Node node = head; //定義變量pre 和 node

Node pre = null;

while(node.element != element && null != node.next){ //程序跳出條件為1、到表尾 2、找到這個元素

pre = node; //保存前面的變量

node = node.next; //指向下一個元素

}

if(node.element == element){

if(null == pre) //假設是指定元素是第一個元素

head = head.next;

else

pre.next = node.next;

return true;

}

else

return false;

}

/*

*查看是否包括某元素

*/

public boolean contains(T element){

if(isEmpty()) return false;

else {

Node node = head;

while(node.element != element && null != node.next)//程序跳出條件為1、到表尾 2、找到這個元素

node = node.next; //不斷指向下一個程序

if(node.element == element)

return true;

else

return false;

}

}

/*

*打印鏈表

*/

public void printList(){

if(isEmpty()){

System.out.println("null");

}

else{

for(Node node=head; node!=null;node=node.next)

System.out.print(node.element +" ");

System.out.println(); //打印回車

}

}

public static void main(String[] args) {

MyList list = new MyList();//若不加便是為指定參數類型,將會警告

//使用了未經檢查或不安全的操作。

//有關具體信息, 請使用 -Xlint:unchecked 又一次編譯。

for(int i=0; i<10; i++){

list.addFirst(i);

}

list.printList(); //打印

list.remove(0); //刪除

list.printList(); //打印

list.addLast(0); //在尾部增加

list.printList(); //打印

list.add(7,-7); //在7之后插入-7

list.printList(); //打印

if(list.contains(-7))

System.out.println("is in the list !");

else

System.out.println("is not in the list !");

}

}

總結

以上是生活随笔為你收集整理的java单链表查询功能,Java 实现简答的单链表的功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。