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实现)相关推荐

  1. java常用类的方法,java常用类的使用方法

    java常用类的使用方法 Interger:整数类型 1.属性. static int MAX_VALUE:返回最大的整型数: static int MIN_VALUE:返回最小的整型数: stati ...

  2. java测试类生成对象,java编写student类 用Java编写一段测试程序,生成student类的两个对象,并输出每个对象基本信息?...

    java中怎么创建对象数组?比如我创建了一个学生类Student,怎么用这个类创建一个对象数组,麻烦给个例子? 学生类:classA{privateStringnameprivateintagepub ...

  3. java引用公共类_使用键引用从Java公共类获取值 - java

    我们有一个Java公共类, public class Test { public class ob1 { public static final String test = "T1T1&qu ...

  4. java path类_基于java Files类和Paths类的用法(详解)

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...

  5. java final 类_在Java中,final修饰的类有什么特点

    展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...

  6. java group类_浅析Java中线程组(ThreadGroup类)

    Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的 ...

  7. java程序讲解_3、Java程序讲解

    HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.printl ...

  8. Java语言类的作用,java 语言Class类的作用,怎么使用?

    1,Class类有什么用? Class类的实例表示java应用运行时的类(Class ans enum)或接口(interface and annotation)(每个java类运行时都在JVM里表现 ...

  9. java订单类_基于Java创建一个订单类代码实例

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...

最新文章

  1. 普元eos开发手册_名词解释--统一应用(开发)平台Unified Application Platform
  2. 下一步工作,尽量将代码整理归拢成可以随意组合拆装的代码块。
  3. Python 操作redis有序集合
  4. SQL Azure Reporting CTP
  5. Java EE 6 VS Spring 3:Java EE杀死了Spring? 没门!
  6. 前端学习(1909)vue之电商管理系统电商系统之渲染修改用户的请求
  7. c++语言 tcp例子,C++中TCP通信实现文件传输
  8. Java 学习笔记之 线程安全
  9. 自定义编程移植的加密芯片
  10. 深度学习界明星:生成对抗网络与Improving GAN
  11. 图像/视频超分之降质过程
  12. 【HDU5409】CRB and Graph 边双联通 子树最值
  13. 有效的数独 python_Python判断有效的数独算法示例
  14. Dreamweaver cs6 网页设计教程笔记
  15. 字体外面怎么加边框_CSS如何给字体加边框
  16. 向量积的坐标运算公式推导_向量积的坐标运及度量公式.ppt
  17. RTB实时竞价, 重塑网络媒体交易规则
  18. SnakeGame(贪吃蛇游戏)
  19. python实现中考倒计时
  20. pygame库-Surface类-blit方法的两个参数(source, dest)的含义

热门文章

  1. Qt Creator常用快捷键及技巧提升编码效率
  2. Qt鼠标拖动绘制基本几何图形
  3. QML做图片倒影效果(控件倒影)
  4. 【已解决】虚拟机提示VMware Workstation cannot connect to the virtual machine的问题
  5. SLAM到底解决的是什么问题?
  6. 报错“Error running ‘Tomcat 9.0.17‘: Address localhost:1099 is already in use
  7. linux c嵌入汇编语言,Linux 下的C和Intel 汇编语言混用
  8. 用python倒序输出一个字符串_Python字符串逆序输出的实例讲解
  9. Cpp 对象模型探索 / 类静态成员函数的调用方式
  10. vue 多个filters_vue自定义filters过滤器