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. What makes an excellent front-end developer?(for my English speech)

    What makes an excellent front-end developer? Let me please start this talking by saying that what is ...

  2. Learning Spark: Lightning-Fast Big Data Analysis 中文翻译

    Learning Spark: Lightning-Fast Big Data Analysis 中文翻译行为纯属个人对于Spark的兴趣,仅供学习. 如果我的翻译行为侵犯您的版权,请您告知,我将停止 ...

  3. 在虚拟机中安装CentOS7

    在虚拟机中安装CentOS7 听语音 | 浏览:17352 | 更新:2014-10-31 12:14 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅最快的到家服务,最优质的电脑清灰! 百 ...

  4. [转]mvc3 使用session来存储类来存储用户登陆信息

    mvc3 使用session来存储类来存储用户登陆信息 2013-08-26 09:48:56|  分类: NET开发 |举报 |字号 订阅   项目之前的登陆机制是这样的:用户登陆后初始化一个类,类 ...

  5. Hoj2634 How to earn more?

    How to earn more My Tags   (Edit)   Source : ww   Time limit : 1 sec   Memory limit : 64 M Submitted ...

  6. JS原型与原型链终极详解

    一. 普通对象与函数对象  JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象.下面举例说明 function f ...

  7. offsetParent详解

    offsetParent与parentNode一样,都是获取父节点,但是offsetParent却有很大的不同之处: offsetParent找有定位的父节点,没有定位默认是body,ie7以下定位在 ...

  8. python设计模式1:导言

    <设计模式>一书总结了23个模式,依据各自的目的又被分为创建型模式(creational pattern).结构型模式(structural pattern)和行为型模式(behavior ...

  9. 【BZOJ 1001】[BeiJing2006]狼抓兔子

    Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个 ...

  10. css默认值汇总

    原文:http://www.cnblogs.com/xiangzi888/archive/2011/10/12/2209514.html HTML标签CSS属性默认值汇总 这个东西,在你需要还原默认值 ...