package com.shb.java;

public class Demo8 {
public Node headNode = null;
/**
* @param args
* @date 2016-9-28
* @author shaobn
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo8 linkedList = new Demo8();
linkedList.addNode(1);
linkedList.addNode(2);
linkedList.addNode(34);
linkedList.addNode(14);
// System.out.println(linkedList.getLength());
linkedList.deleteNode(1);
linkedList.printNode();
}
/**
* 插入到链表中
* @param data
* @date 2016-9-28
* @author shaobn
*/
public void addNode(int data){
Node node = new Node(data);
if(headNode==null){
headNode = node;
return;
}
Node tmpNode = headNode;
if(tmpNode.next==null){
tmpNode.next = node;
return;
}
while(tmpNode.next!=null){
tmpNode = tmpNode.next;
}
tmpNode.next = node;
}
/**
* 打印节点的值
*
* @date 2016-9-28
* @author shaobn
*/
public void printNode(){
Node tmpNode = headNode;
while(tmpNode!=null){
System.out.println(tmpNode.data);
tmpNode = tmpNode.next;
}
}
/**
* 删除节点
*
* @date 2016-9-28
* @author shaobn
*/
public void deleteNode(int index){
if(index<=0||index>this.getLength()){
throw new RuntimeException("索引选取不合适");
}
int count = 1;
Node tmpNode = headNode;
while(tmpNode.next!=null){
count++;
if(index==1){
headNode = tmpNode.next;
break;
}
if(count==index){
tmpNode.next = tmpNode.next.next;
}
tmpNode = tmpNode.next;
continue;
} }
/**
* 获得本链表的长度
* @return
* @date 2016-9-28
* @author shaobn
*/
public int getLength(){
int length = 0;
Node tmpNode = this.headNode;
while(tmpNode!=null){
length++;
tmpNode = tmpNode.next;
}
return length; }
}
/**
* 节点的类
* @author shaobn
* @date 2016-9-28
* @package_name com.shb.java
*/
class Node{
public int data;
public Node next;
public Node(int data){
this.data = data;
} }

Java关于链表的增加、删除、获取长度、打印数值的实现的更多相关文章

  1. 在idea的java开发中字符串length()方法获取长度与赋值不符的问题

    最近在开发中用到length()方法获取中文字符串的长度,发现获得的长度与实际不符.比如个String类型赋值为"中",但获取长度却是2. 这让我百思不得其解,后来突然想起来我在研 ...

  2. java 判断字符串IP合法性以及获取IP的数值形式

    /** * 计算传入的IP地址的数字IP*/ public static long getIpNum(String ip) { long ipNum = 0; if (StringUtils.isNo ...

  3. 链表插入和删除,判断链表是否为空,求链表长度算法的,链表排序算法演示——C语言描述

    关于数据结构等的学习,以及学习算法的感想感悟,听了郝斌老师的数据结构课程,其中他也提到了学习数据结构的或者算法的一些个人见解,我觉的很好,对我的帮助也是很大,算法本就是令人头疼的问题,因为自己并没有学 ...

  4. Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录

    Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...

  5. 数据结构——基于java的链表实现(真正理解链表这种数据结构)

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10759599.html,否则将追究法律责任!!! 一.链表介绍 1.什么是链表? 链表是一 ...

  6. Java单链表简单实现* @version 1.0

    package com.list; /** * 数据结构与算法Java表示 * @version 1.0 * @author 小明 * */ public class MyLinkedList { p ...

  7. Java实现链表(个人理解链表的小例子)

    1.单链表和数组的区别 数组:数组的存储空间是连续的,需要事先申请空间确定大小,通过下标查找数据,所以查找速度快,但是增加和删除速度慢 链表:离散存储,不需要事先确定大小,通过头指针加遍历查找数据,查 ...

  8. java算法--链表

    虽然这个文章看着很多,但是大多是对于细节的讲解,如果想要快速了解,可以直接观看末尾代码.上面的代码内容都是来自于文章末尾的代码. 很重要的算法,也是比较简单的算法. 但是在java中,因为不存在c和c ...

  9. 数据结构与算法系列2 线性表 链表的分类+使用java实现链表+链表源码详解

    数据结构与算法系列2.2 线性表 什么是链表? 链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表的链接次序实现的一系列节点组成,节点可以在运行时动态生成,每个节点包括两个 ...

随机推荐

  1. DataTables.js插入数据的两种方式

    一:采用数组的方式插入值 var tableData = []; ; ; $.each(data, function (i, d) { tableData.push([idxTable, d.stcd ...

  2. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

  3. 1022. Digital Library (30)

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  4. ubuntu上安装Eclipse时遇到的一个错误

    A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Ecli ...

  5. 微信公众号内H5调用微信支付国内服务商模式

    最近在折微信公众号内H5用JSAPI调用微信支付,境内服务商版支付,微信支付给出的官方文档以及SDK不够详细,导至我们走了一些弯路,把他分享出来,我这边主要是用PHP开发,所以未加说的话示例都是PHP ...

  6. 20145337《JAVA程序设计》第一周学习总结

    # 20145337 <Java程序设计>第1周学习总结 ## 教材学习内容总结 第一章 -Java最早是Sun公司撰写Star7应用程序的程序语言 -根据应用领域不同,有Java SE. ...

  7. Python脚本模拟登录网页之GitHub篇

    1. 通过Firefox配合插件Tamper Date获取登录时客户端向服务器端提交的数据, 并且发现authenticity_token这个字段每次登录时都不一样. POSTDATA=commit= ...

  8. ThinkPHP 3.2.3 Widget 扩展的使用

    ThinkPHP3.2.3 手册中 Widget 扩展的地址是: http://www.kancloud.cn/manual/thinkphp/1862 Widget 扩展一般用于页面组件的扩展,和自 ...

  9. ThinkPHP 3.2.3 简单后台模块开发(一)常用配置

    一.项目分组 下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home). 需 ...

  10. the major advances since the birth of the computer

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION • The family concept: ...