单链表之Java实现
初次接触java,用java也写了一个链表。代码如下:
import java.io.*;
class Node{
public int data; //数据域
public Node next; //指针域,全局变量可以不用初始化
public Node(int data1){
data = data1;
next = null;
}
public void display(){
System.out.println("data: "+this.data);
}
}
//定义单链表
class LinkList{
public int pos = 0; //结点的位置
public Node first; //头结点
public LinkList(){
Node first1 = new Node(0);
first = first1;
}
//插入结点(从尾部插入结点)
public void addNode(int data){
if(first == null){
Node node = new Node(data);
first = node;
node.next = null;
}
else{
Node node = new Node(data);
Node current = first;
while(current.next != null)
current = current.next;
current.next = node;
node.next = null;
}
}
//删除尾部的结点
public Node deleteNode(){
Node current = first;
Node pre = current;
while(current.next != null){
pre = current;
current = current.next;
}
Node temp = pre.next;
pre.next = null;
return temp;
}
//在任意位置插入节点
public void insertNode(int index,int data){
Node node = new Node(data);
Node current = first;
while(pos != (index-1)){
current = current.next;
pos++;
}
node.next = current.next;
current.next = node;
pos = 0;
}
//删除任意位置的结点
public Node deleteNode(int index){
Node current = first;
while(pos != (index-1)){
current = current.next;
pos++;
}
Node temp = current.next;
current.next = (current.next).next;
pos = 0;
return temp;
}
//显示出所有结点信息
public void displayAllNodes(){
Node current = first;
while(current.next != null){
current.display();
current = current.next;
}
}
//根据位置查找结点信息
public Node findByPos(int index){
Node current = first;
while(pos != index){
current = current.next;
pos++;
}
pos = 0;
return current;
}
//根据数据查找结点信息
public Node findByData(int data){
Node current = first;
while(current.data != data){
if(current.next == null)
return null;
current = current.next;
}
return current;
}
}
public class test{
public static void main(String[] args){
LinkList link = new LinkList();
link.addNode(1);
link.addNode(2);
link.addNode(3);
link.addNode(4);
link.addNode(5);
link.insertNode(1,1000);
link.displayAllNodes();
}
}
下面是运行结果:

如有错误,欢迎交流指正。
单链表之Java实现的更多相关文章
- 线性表概述及单链表的Java实现
一.线性表概述 线性表是指一组数据元素之间具有线性关系的元素序列,它表现为:除第一个元素没有直接前驱元素.最后一个元素没有直接后继元素外,其余所有元素都有且仅有一个直接前驱元素和直接后继元素. 根据存 ...
- 单链表数据结构 - java简单实现
链表中最简单的一种是单向链表,每个元素包含两个域,值域和指针域,我们把这样的元素称之为节点.每个节点的指针域内有一个指针,指向下一个节点,而最后一个节点则指向一个空值.如图就是一个单向链表 一个单向链 ...
- 单链表反转java代码
据说单链表反转问题面试中经常问,而链表这个东西相对于数组的确稍微难想象,因此今天纪录一下单链表反转的代码. 1,先定义一个节点类. public class Node { int index; Nod ...
- 使用java实现单链表----(java中的引用就是指针)
//一直以为java中没有指针,其实java的引用就是指针,只不过堆栈中的引用储存了在堆中的地址,可以看做java中的指针.public class sibgleLink<E> { // ...
- 两个有序单链表合并成一个有序单链表的java实现
仅作为备注, 便于自己回顾. import java.util.Arrays; public class MergeSort { public static class LinkedNode<V ...
- 单链表的java实现
class LNode { public LNode next; public int data; } class Lianbiao { private static LNode head = new ...
- 数据结构——Java实现单链表
一.分析 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点由元素和指针构成.在Java中,我们可以将单链表定义成一个类,单链表的基 ...
- 单链表Java实现
近期在复习基本数据结构,本文是单链表的Java实现,包含对单链表的实现插入删除查找遍历等.最后还实现了单链表的逆置. 实现了多项式相加,多项式相乘. 原文章及完整源码在这里 http://binhua ...
- Java单链表反转 详细过程
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/guyuealian/article/details/51119499 Java单链表反转 Java实 ...
随机推荐
- 16.screen相关
screen -S yourname -> 新建一个叫yourname的sessionscreen -ls -> 列出当前所有的sessionscreen -r yourname -> ...
- Thinkphp解决phpExcel导出数据量大导致内存溢出
工作需要导出几万的数据量.操作比较频繁.之前数据在七八千是数据导出很慢.phpExcel是方便但是性能一般.现在改为使用csv导出数据:可以缓解内存压力,一次导出两三万是没问题的.当然服务器内存给力, ...
- PHP获取指定时间的前6个月月份 、获取前6天日期
//获取前6个月月份 public function to_sex_month(){ $today = input('param.today') ? input('param.today') : da ...
- Rikka with Graph hdu 6090
题解:考虑贪心地一条一条边添加进去. 当 m \leq n-1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点.在这个联通块中 ...
- hdu 2609 字符串最小表示法 虽然不是很懂 还是先贴上来吧。/,。/
还需要再消化一下这个算法.. 今天没有时间了,, 六级过了 就有大把时间 快活啊!#include<iostream> #include<cstdio> #include< ...
- 12-MySQL DBA笔记-MySQL复制
第12章 MySQL复制 本章将为读者讲述MySQL的复制技术,首先,介绍最基础的主从复制,它是其他所有复制技术的基础,接着再为读者讲述各种复制架构的搭建,最后,列举了一些常见的复制问题及处理方式.复 ...
- 史上最全Java集合中List,Set以及Map等集合体系详解
一.概述 List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有HashSet,LinkedHashSet,TreeSet List下有ArrayL ...
- JS写斐波那契数列的几种方法
斐波那契数,指的是这样一个数列:1.1.2.3.5.8.13.21.……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字 ...
- LCD1602 液晶
它是一种专门用来显示字母.数字.符号的点阵型液晶模块 它是由若干个5x7或者5x10的点阵字符位组成 引脚 时序 操作步骤 初始化 写命令(RS=L)设置显示坐标 写数据(RS=H) 指令 清屏: 指 ...
- PCQQ - 发送自定义的XML卡片消息
效果: 原理: qq分享产生的xml卡片消息存储在qq内存中,可以在qq运行内存中搜索找到其xml源码,记录源码相应的内存地址,通过内存地址修改掉内存数据,再次转发这条分享的消息就会发现内容的变化. ...