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实现)相关推荐
- java常用类的方法,java常用类的使用方法
java常用类的使用方法 Interger:整数类型 1.属性. static int MAX_VALUE:返回最大的整型数: static int MIN_VALUE:返回最小的整型数: stati ...
- java测试类生成对象,java编写student类 用Java编写一段测试程序,生成student类的两个对象,并输出每个对象基本信息?...
java中怎么创建对象数组?比如我创建了一个学生类Student,怎么用这个类创建一个对象数组,麻烦给个例子? 学生类:classA{privateStringnameprivateintagepub ...
- java引用公共类_使用键引用从Java公共类获取值 - java
我们有一个Java公共类, public class Test { public class ob1 { public static final String test = "T1T1&qu ...
- java path类_基于java Files类和Paths类的用法(详解)
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...
- java final 类_在Java中,final修饰的类有什么特点
展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...
- java group类_浅析Java中线程组(ThreadGroup类)
Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的 ...
- java程序讲解_3、Java程序讲解
HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.printl ...
- Java语言类的作用,java 语言Class类的作用,怎么使用?
1,Class类有什么用? Class类的实例表示java应用运行时的类(Class ans enum)或接口(interface and annotation)(每个java类运行时都在JVM里表现 ...
- java订单类_基于Java创建一个订单类代码实例
这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订 ...
最新文章
- 普元eos开发手册_名词解释--统一应用(开发)平台Unified Application Platform
- 下一步工作,尽量将代码整理归拢成可以随意组合拆装的代码块。
- Python 操作redis有序集合
- SQL Azure Reporting CTP
- Java EE 6 VS Spring 3:Java EE杀死了Spring? 没门!
- 前端学习(1909)vue之电商管理系统电商系统之渲染修改用户的请求
- c++语言 tcp例子,C++中TCP通信实现文件传输
- Java 学习笔记之 线程安全
- 自定义编程移植的加密芯片
- 深度学习界明星:生成对抗网络与Improving GAN
- 图像/视频超分之降质过程
- 【HDU5409】CRB and Graph 边双联通 子树最值
- 有效的数独 python_Python判断有效的数独算法示例
- Dreamweaver cs6 网页设计教程笔记
- 字体外面怎么加边框_CSS如何给字体加边框
- 向量积的坐标运算公式推导_向量积的坐标运及度量公式.ppt
- RTB实时竞价, 重塑网络媒体交易规则
- SnakeGame(贪吃蛇游戏)
- python实现中考倒计时
- pygame库-Surface类-blit方法的两个参数(source, dest)的含义
热门文章
- Qt Creator常用快捷键及技巧提升编码效率
- Qt鼠标拖动绘制基本几何图形
- QML做图片倒影效果(控件倒影)
- 【已解决】虚拟机提示VMware Workstation cannot connect to the virtual machine的问题
- SLAM到底解决的是什么问题?
- 报错“Error running ‘Tomcat 9.0.17‘: Address localhost:1099 is already in use
- linux c嵌入汇编语言,Linux 下的C和Intel 汇编语言混用
- 用python倒序输出一个字符串_Python字符串逆序输出的实例讲解
- Cpp 对象模型探索 / 类静态成员函数的调用方式
- vue 多个filters_vue自定义filters过滤器