import java.lang.System;
public class Hello
{
public static void main(String[] args)
{
LinkList List = new LinkList();
List.add(1);
List.add(2);
List.add(3);
List.add(4);
List.print();
int data;
data = List.deleteElemAt(2);
List.print();
System.out.println("the value of data deleted is :"+data);
List.reverse();
List.print();
} }
class Node//元素结点
{
public int data;
public Node next;
public Node(int data)
{
this.data = data;
this.next = null;
}
} class LinkList
{
private Node head;//头结点指针
private int length;//链表长度
private Node tail;//尾结点指针
public LinkList()
{
head = new Node(0);
head.next = null;
tail = head;
} public void insert(int index, int e)
{
if(index>this.length+1 || index<=0) return ;
if(index==this.length+1)
{
this.add(e);
}
Node p = this.head;
int i=0;
while(p.next != null)
{
++i;
if(i==index)
{
Node temp = new Node(e);
temp.next = p.next;
p.next = temp;
++this.length;
}
p = p.next;
}
} public void add(int e)
{
Node temp = new Node(e);
this.tail.next = temp;
this.tail = temp;
++ this.length;
} public boolean isEmpty()
{
return length == 0;
} public void reverse()
{
Node p = this.head.next;
Node q = null;
this.head.next = null;
while(p!=null)
{
q = p;
p=p.next;
q.next = this.head.next;
this.head.next = q; }
} public void print()
{
Node p = this.head.next;
while(p!=null)
{
System.out.print(p.data+"\t");
p=p.next;
}
System.out.println();
} public int length()
{
return this.length;
} public int deleteElemAt(int index)
{
if(index>this.length || index<=0) return -9999;
Node p = this.head;
int i = 0;
while(p.next != null)
{
++i;
if(i==index)
{
Node temp = p.next;
p.next = temp.next;
return temp.data; }
p = p.next;
}
return -9999;
}
} //结果: D:\Tools\UltraEdit-32\Data
λ java Hello
1 2 3 4
1 3 4
the value of data deleted is :2
4 3 1

链表的Java实现的更多相关文章

  1. 线性表概述及单链表的Java实现

    一.线性表概述 线性表是指一组数据元素之间具有线性关系的元素序列,它表现为:除第一个元素没有直接前驱元素.最后一个元素没有直接后继元素外,其余所有元素都有且仅有一个直接前驱元素和直接后继元素. 根据存 ...

  2. 算法是什么(二)手写个链表(java)

    算法是什么(二)手写个链表(java)   liuyuhang原创,未经允许禁止转载 目录 算法是什么(〇) 很多语言的API中都提供了链表实现,或者扩展库中实现了链表. 但是更多的情况下,Map(或 ...

  3. 数据结构之链表及其Java实现

    数据的存储一般分线性存储结构和链式存储结构两种.前者是一种顺序的存储方式,在内存中用一块连续的内存空间存储数据,即逻辑上相连的物理位置相邻,比较常见的就是数组:后者是一种链式存储方式,不保证顺序性,逻 ...

  4. 剑指offer面试题5 从头到尾打印链表(java)

    注:(1)这里体现了java数据结构与C语言的不同之处 (2)栈的操作直接利用stack进行 package com.xsf.SordForOffer; import java.util.Stack; ...

  5. 单链表数据结构 - java简单实现

    链表中最简单的一种是单向链表,每个元素包含两个域,值域和指针域,我们把这样的元素称之为节点.每个节点的指针域内有一个指针,指向下一个节点,而最后一个节点则指向一个空值.如图就是一个单向链表 一个单向链 ...

  6. 使用java实现单链表----(java中的引用就是指针)

    //一直以为java中没有指针,其实java的引用就是指针,只不过堆栈中的引用储存了在堆中的地址,可以看做java中的指针.public class sibgleLink<E> { // ...

  7. 【数据结构】之链表(Java语言描述)

    以前写过一篇帖子,记录了链表在C语言中的描述代码.C语言中没有链表的直接实现,因此,我们需要自己编写代码实现.请参考[我的这篇文章]. Java中默认为我们提供了链表的API—— LinkedList ...

  8. LeetCode 链表题 ( Java )

    leetcode 237. 删除链表中的节点 链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/ 示例 : 输入: he ...

  9. 剑指Offer-16.合并两个排序的链表(C++/Java)

    题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 分析: 可以用一个新的节点,来去比较两个单调递增的链表当前节点的值,如果p1当前的值小于p2,则新 ...

随机推荐

  1. MMORPG大型游戏设计与开发(客户端架构 part6 of vegine)

    客户端的变量模块部分主要是将一些常用可变的值集中管理,如窗口的大小,是否开启音乐,音量的大小等等.这些变量通常会应该到客户端的操作,一般来说变量改变的时候会调用一个回调进行处理.下面我们就看看该模块的 ...

  2. HDU3535AreYouBusy[混合背包 分组背包]

    AreYouBusy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. Application中的路径

    前提条件 项目工程目录:E:/Work/cosmosbox/cb-client/ 我电脑当前的用户名:qingqing PersistentDataPath Application.persisten ...

  4. ubuntu14安装Qt

    首先下载Qt源码 https://download.qt.io/archive/qt/4.8/4.8.4/ 这里我下载的是qt-everywhere-opensource-src-4.8.4.tar. ...

  5. [No000007]搜索引擎以图搜图的原理

    之前,Google把"相似图片搜索"正式放上了首页. 你可以用一张图片,搜索互联网上所有与它相似的图片.点击搜索框中照相机的图标. 一个对话框会出现. 你输入网片的网址,或者直接上 ...

  6. CSS语法

    在CSS中,通过id选择元素和JavaScript一样:#idname.也可以在最前面加上元素名,防止id相同的冲突.

  7. Centos6.2 下 vncserver 的安装

    好久没用vnc了, 把今天装的过程记录一下, 这是一个从网上下载的标准Centos6.2 虚机镜像, 已经带了桌面. 默认的用户是root和tom, 口令都是tomtom. 因为ssh服务没起来, 简 ...

  8. Smoothing in fMRI analysis (FAQ)

    Source: http://mindhive.mit.edu/node/112 1. What is smoothing? "Smoothing" is generally us ...

  9. WEBAPI 怎么保证安全

    先记录下   客户端登陆,服务端验证然后生成session,客户端每次调用接口的时候都把session带过去.服务端路由请求的时候都去验证session. 另外一种app的做法是,参数+用户名密码做s ...

  10. 进程控制块(Process Control Block, PCB)

    是为了管理进程设置的一个数据结构.是系统感知进程存在的唯一标志.通常包含如以下的信息:(1)进程标识符(唯一)(2)进程当前状态,通常同一状态的进程会被放到同一个队列:(3)进程的程序和数据地址(4) ...