我是靠谱客的博主 无心水蜜桃,最近开发中收集的这篇文章主要介绍Java链表数据结构,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        链表数据结构和数组的横向不同,他是向下延申的,因为他是递归函数的应用。通常在类中定义一个内部类,把内部类当作属性,外部类中存放根节点,运行的时候需要先判断根节点的状态,然后再看是否需要调用根节点下一个节点也就是too.nxet其中too表示当前对象。this.nxet就是当前对象的下一级。


public class DiGui{
public static void main(String []args) {
Nodn k = new Nodn();
k.add(1);
k.add(3);
k.add(4);//添加数据
k.del(3);//删除数据
k.upN(4, 5);//替换数据
System.out.println(k.find(4));//查找数据
k.ins(1, 9);//插入数据
k.print1();//打印数据
}
}
class Nodn{
private int cin=0;
private Nodn1 too;
//添加节点
public void add(int a) {
if(too==null) {//优先判断跟节点
too = new Nodn1(a);
}else {
too.addNodn1(a);
}
}
//输出节点
public void print1() {
if(too!=null) {
System.out.println(too.a);
too.printNodn1();
}
}
//删除节点
public void del(int a) {
if(too==null)return;
if(too.getA()==a) {
too = too.nxte;
}else {
too.delNodn1(a);
}
}
//查找节点
public boolean find(int a) {
if(too==null) return false;
if(too.getA()==a) {
return true;
}else {
return too.findNodn1(a);
}
}
//修改节点
public boolean upN(int oldA,int newA) {
if(too==null) return false;
if(too.getA()==oldA) {
too.setA(newA);
return true;
}else {
return too.upNodn1(oldA, newA);
}
}
//往前插入节点
public void ins(int index,int a) {
if(index<0)return;
cin=0;
if(index == cin) {
Nodn1 k = new Nodn1(a);
k.nxte=too;
too=k;
}else {
too.insert(index, a);
}
}
private class Nodn1{
private int a;
private Nodn1 nxte;//把自己当作自己的属性
public Nodn1(int a) {
this.a=a;
}
public void setA(int a) {
this.a=a;
}
public int getA() {
return a;
}
//添加节点
public void addNodn1(int a) {
if(this.nxte==null) {
this.nxte=new Nodn1(a);
}else {
this.nxte.addNodn1(a);
}
}
//删除节点
public void delNodn1(int a) {
if(this.nxte!=null) {
if(this.nxte.a==a) {
this.nxte = this.nxte.nxte;//this表示too。too.nxte的下一个nxte把当前的nxte覆盖掉(替换位置)
}else {
this.nxte.delNodn1(a);
}
}
}
//输出所有节点
public void printNodn1() {
if(this.nxte!=null) {
System.out.println(this.nxte.a);
this.nxte.printNodn1();
}
}
//查找节点
public boolean findNodn1(int a) {
if(this.nxte!=null) {
if(this.nxte.a==a) {
return true;
}else {
this.nxte.findNodn1(a);
}
}
return false;
}
//修改节点
public boolean upNodn1(int oldA,int newA) {
if(this.nxte!=null) {
if(this.nxte.getA()==oldA) {
this.nxte.setA(newA);
return true;
}else {
return this.nxte.upNodn1(oldA, newA);
}
}
return false;
}
//往后插入节点
public void insert(int index,int a) {
cin++;
if(index==cin) {
Nodn1 k = new Nodn1(a);
k.nxte=this.nxte;
this.nxte=k;
}else {
this.nxte.insert(index, a);
}
}
}
}

最后

以上就是无心水蜜桃为你收集整理的Java链表数据结构的全部内容,希望文章能够帮你解决Java链表数据结构所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部