Java关于链表的增加、删除、获取长度、打印数值的实现
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关于链表的增加、删除、获取长度、打印数值的实现的更多相关文章
- 在idea的java开发中字符串length()方法获取长度与赋值不符的问题
最近在开发中用到length()方法获取中文字符串的长度,发现获得的长度与实际不符.比如个String类型赋值为"中",但获取长度却是2. 这让我百思不得其解,后来突然想起来我在研 ...
- java 判断字符串IP合法性以及获取IP的数值形式
/** * 计算传入的IP地址的数字IP*/ public static long getIpNum(String ip) { long ipNum = 0; if (StringUtils.isNo ...
- 链表插入和删除,判断链表是否为空,求链表长度算法的,链表排序算法演示——C语言描述
关于数据结构等的学习,以及学习算法的感想感悟,听了郝斌老师的数据结构课程,其中他也提到了学习数据结构的或者算法的一些个人见解,我觉的很好,对我的帮助也是很大,算法本就是令人头疼的问题,因为自己并没有学 ...
- Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录
Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...
- 数据结构——基于java的链表实现(真正理解链表这种数据结构)
原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10759599.html,否则将追究法律责任!!! 一.链表介绍 1.什么是链表? 链表是一 ...
- Java单链表简单实现* @version 1.0
package com.list; /** * 数据结构与算法Java表示 * @version 1.0 * @author 小明 * */ public class MyLinkedList { p ...
- Java实现链表(个人理解链表的小例子)
1.单链表和数组的区别 数组:数组的存储空间是连续的,需要事先申请空间确定大小,通过下标查找数据,所以查找速度快,但是增加和删除速度慢 链表:离散存储,不需要事先确定大小,通过头指针加遍历查找数据,查 ...
- java算法--链表
虽然这个文章看着很多,但是大多是对于细节的讲解,如果想要快速了解,可以直接观看末尾代码.上面的代码内容都是来自于文章末尾的代码. 很重要的算法,也是比较简单的算法. 但是在java中,因为不存在c和c ...
- 数据结构与算法系列2 线性表 链表的分类+使用java实现链表+链表源码详解
数据结构与算法系列2.2 线性表 什么是链表? 链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表的链接次序实现的一系列节点组成,节点可以在运行时动态生成,每个节点包括两个 ...
随机推荐
- DataTables.js插入数据的两种方式
一:采用数组的方式插入值 var tableData = []; ; ; $.each(data, function (i, d) { tableData.push([idxTable, d.stcd ...
- 20145330《Java程序设计》第一次实验报告
20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...
- 1022. Digital Library (30)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- ubuntu上安装Eclipse时遇到的一个错误
A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Ecli ...
- 微信公众号内H5调用微信支付国内服务商模式
最近在折微信公众号内H5用JSAPI调用微信支付,境内服务商版支付,微信支付给出的官方文档以及SDK不够详细,导至我们走了一些弯路,把他分享出来,我这边主要是用PHP开发,所以未加说的话示例都是PHP ...
- 20145337《JAVA程序设计》第一周学习总结
# 20145337 <Java程序设计>第1周学习总结 ## 教材学习内容总结 第一章 -Java最早是Sun公司撰写Star7应用程序的程序语言 -根据应用领域不同,有Java SE. ...
- Python脚本模拟登录网页之GitHub篇
1. 通过Firefox配合插件Tamper Date获取登录时客户端向服务器端提交的数据, 并且发现authenticity_token这个字段每次登录时都不一样. POSTDATA=commit= ...
- ThinkPHP 3.2.3 Widget 扩展的使用
ThinkPHP3.2.3 手册中 Widget 扩展的地址是: http://www.kancloud.cn/manual/thinkphp/1862 Widget 扩展一般用于页面组件的扩展,和自 ...
- ThinkPHP 3.2.3 简单后台模块开发(一)常用配置
一.项目分组 下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home). 需 ...
- the major advances since the birth of the computer
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION • The family concept: ...