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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java循环链表类_3、循环链表(java实现)

發布時間:2024/10/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java循环链表类_3、循环链表(java实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

public class CircularLink{private static Node head = null;/*** 初始化*/

public voidinitCircularLink() {

head= newNode();

head.data= null;

head.next=head;

}/*** 插入節點

*

*@paramelement :節點元素值*/

public voidinsertCircularLink(T element) {

Node node= new Node(); //初始化節點

node.data =element;if (head.next ==head) {

head.next=node;

node.next=head;

}else{

Node temp=head;while (temp.next !=head) {

temp=temp.next;

}

temp.next=node;

node.next=head;

}

}/*** 值刪除

*

*@paramelement : 要刪除的值

*@return:刪除則為true 否則為假*/

public booleandeleteCircularLink(T element) {

Node temp=head;if (temp.next ==head) {

System.out.println("鏈表已空,沒有可刪除的值");return false;

}while (temp.next !=head) {if (temp.next.data ==element) {

temp.next=temp.next.next;return true;

}else{

temp=temp.next;

}

}return false;

}/*** 下標刪除

*

*@parami : 要刪除的值下標

*@return:刪除則為true 否則為假*/

public boolean deleteIndexCircularLink(inti) {

Node temp=head;int index = -1;if (temp.next ==head) {

System.out.println("鏈表已空,沒有可刪除的值");return false;

}if (i < 0 || i >=sizeCircularLink()) {

System.out.println("越界下標");return false;

}while (temp.next !=head) {

index++;if (index ==i) {

temp.next=temp.next.next;

}

temp=temp.next;

}return false;

}/*** 給定值求下標

*

*@paramelement :要找的元素*/

public voidfindCircularLink(T element) {

Node temp=head;int index = -1;if (temp.next ==head) {

System.out.println("鏈表已空,無法查找");

}while (temp.next !=head) {

temp=temp.next;

index++;if (temp.data ==element) {

temp=temp.next;

System.out.println("下標為: " +index);return;

}

}

System.out.println("你要找的值不在這里");

}/*** 下標求值

*@paramindex*/

public void findDataCircularLink(intindex) {

Node temp=head;int size= 0; //為增加下標用的

if (temp.next ==head) {

System.out.println("鏈表已空,沒有可刪除的值");return;

}if (index >= sizeCircularLink() || index < 0){

System.out.println("你的下標越界");return;

}while (temp.next !=head){

temp=temp.next;if (size ==index){

System.out.println("你要找的值為: "+temp.data);return;

}

size++;

}

System.out.println("沒有你的值");

}/*** 打印*/

public voidprintCircularLink() {

Node temp=head;

System.out.print("打印循環鏈表: ");while (temp.next !=head) {

temp=temp.next;

System.out.print(temp.data+ " ");

}

System.out.println();

}/*** 求長度

*

*@return: 返回的長度*/

public static intsizeCircularLink() {

Node temp=head;int size = 0;while (temp.next !=head) {

temp=temp.next;

size++;

}returnsize;

}public static voidmain(String[] args) {

CircularLink circularLink = newCircularLink();

circularLink.initCircularLink();

circularLink.insertCircularLink(1);

circularLink.insertCircularLink(2);

circularLink.insertCircularLink(3);

circularLink.insertCircularLink(4);

circularLink.insertCircularLink(5);

circularLink.printCircularLink();

System.out.println("長度: " +circularLink.sizeCircularLink());

System.out.println();

System.out.println("值刪除值");

circularLink.deleteCircularLink(1);

circularLink.printCircularLink();

System.out.println("長度: " +circularLink.sizeCircularLink());

System.out.println();

System.out.println("下標刪除值");

circularLink.deleteIndexCircularLink(1);

circularLink.printCircularLink();

System.out.println("長度: " +circularLink.sizeCircularLink());

System.out.println();

System.out.println("值查找下標");

circularLink.findCircularLink(5);

circularLink.printCircularLink();

System.out.println("長度: " +circularLink.sizeCircularLink());

System.out.println();

System.out.println("下標查找值");

circularLink.findDataCircularLink(3);

circularLink.printCircularLink();

System.out.println("長度: " +circularLink.sizeCircularLink());

System.out.println();

}

}

總結

以上是生活随笔為你收集整理的java循环链表类_3、循环链表(java实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

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