博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 双链表的指定添加、删除数据的详细实现
阅读量:3960 次
发布时间:2019-05-24

本文共 2849 字,大约阅读时间需要 9 分钟。

Java 双链表的指定添加、删除数据的详细实现

定义双链表

//定义双链表    private static class DoubleLink{
int data; DoubleLink pre; DoubleLink next; DoubleLink(){
} DoubleLink(int data){
this.data=data; } }

初始化双链表

//初始化双链表    private static DoubleLink initLink(int [] arr,DoubleLink link){
DoubleLink head=link; int i=0; if (head==null) head= new DoubleLink(); int len =getLen(link); while (i

正向打印双链表

//正向打印双链表    private  static void printLink(DoubleLink link){
DoubleLink head =link; int i=0; while (head!=null){
i++; System.out.println("第"+i+"个数是"+head.data); head=head.next; } }

反向打印双链表

//反向打印双链表    private  static void reversePrintLink(DoubleLink link){
DoubleLink head =link; int i=getLen(link); while (head.next!=null){
head=head.next; } DoubleLink tail =head; while (tail.pre!=null){
System.out.println("第"+i+"个数是"+tail.data); tail=tail.pre; i--; } }

指定插入数据

//指定位置插入数据 dataLink需要插入的数据,index插入的位置    private static DoubleLink insertDataIndex(DoubleLink link, DoubleLink dataLink,int index){
DoubleLink head =link; int len =getLen(link); if(len<1||index>len+1){
System.out.println("原链表不满足条件!"); return link; } else if (index==1){
dataLink.next=head; head.pre=dataLink; return dataLink; } else{
int i=1; while (i

指定位置删除数据

//指定位置删除数据 index指定的数据位置    private static DoubleLink delDataIndex(DoubleLink link, int index){
DoubleLink head =link; int len =getLen(link); if(index<1||index>len+1){
System.out.println("指定位置不满足条件!"); return link; } else if (index==1){
DoubleLink tmp=new DoubleLink(); tmp.next=head.next; head.pre=tmp; return tmp.next; } else {
int i=1; while (i

主函数

public static void main(String[] args) {
//初始化链表 DoubleLink link =initLink(new int[]{
1, 6, 9, 12},new DoubleLink()); //正向打印链表 System.out.println("***************正向打印链表为*********************************"); printLink(link); //反向打印链表 System.out.println("***************反向打印链表为**********************************"); reversePrintLink(link); //指定索引位置添加数据 System.out.println("**************指定索引位置添加数据后链表为***********************"); printLink(insertDataIndex(link,new DoubleLink(5),4)); //指定索引位置删除数据 System.out.println("**************指定索引位置删除数据后链表为***********************"); printLink(delDataIndex(link,3)); }

运行结果

在这里插入图片描述

转载地址:http://frqzi.baihongyu.com/

你可能感兴趣的文章
代理模式、静态代理、动态代理、aop
查看>>
Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00
查看>>
大型Web2.0站点构建技术初探
查看>>
机器学习算法汇总:人工神经网络、深度学习及其它
查看>>
解决Spring中AOP不能切入Struts的DispatchAction方法的问题
查看>>
出国以后才知道英语应该怎么学
查看>>
计算机专业权威期刊投稿经验总结
查看>>
如何在三个月内学会一门外语?
查看>>
看看你对Linux到底了解多少?
查看>>
网上看到的:ARM入门最好的文章(转)
查看>>
中国最美情诗100句
查看>>
javascript注册window的onload事件问题研究
查看>>
客户端技术分页控件javascript+css,可用于任何服务器端技术
查看>>
学习Swing 的网站[转]
查看>>
Google App engine 的第一个应用 midispot
查看>>
提问的智慧
查看>>
关于dom4j无法解析xmlns问题及生成非UTF-8字符集乱码问题的解决
查看>>
很好的一篇文章 如果让我重做一次研究生 王汎森
查看>>
保护U盘批处理文件
查看>>
hibernate 自动导入sql 文件import.sql 国际化编码的问题的解决方案
查看>>