单链表之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实 ...
随机推荐
- 2-MySQL DBA笔记-MySQL安装部署和入门
第2章 MySQL安装部署和入门 第1章介绍了MySQL的一些基础知识,本章将为读者介绍MySQL的部署.安装及一些常用命令和参数的设置.2.1 如何选择MySQL版本 在选择MySQL的版本时,要根 ...
- Partial的应用
Partial是局部类型的意思.允许我们将一个类.结构或接口分成几个部分,分别实现在几个不同的.cs文件中.C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类 局部类型的注意点1. 局部 ...
- Apache开启.htaccess 支持
(1) <Directory "${SRVROOT}/htdocs"> # # Possible values for the Options directive ar ...
- SqlServer2008 跨服务器同步数据
最近工作中需要跨服务器同步数据,在数据库DB1中的表T1插入数据,同时触发T1的触发器(这里暂不讨论触发器的效率问题),向另一台服务器DB2中的相同的一张表T2插入数据,查看了一些资料说, 需要打开D ...
- ASP.NET IHttpModule IHttpHandler IHttpHandlerFactory 拦截请求
先来看看代码,拦截所有Http请求类.下面包含了两种类的集成 IHttpModule IHttpHandlerFactory using System; using System.Collection ...
- Docker镜像拉取失败或超时的解决办法:添加国内镜像
$ docker pull php:7.1-fpm-alpine Error response from daemon: Get https://registry-1.docker.io/v2/: n ...
- 如何入门Pytorch之二:如何搭建实用神经网络
上一节中,我们介绍了Pytorch的基本知识,如数据格式,梯度,损失等内容. 在本节中,我们将介绍如何使用Pytorch来搭建一个经典的分类神经网络. 搭建一个神经网络并训练,大致有这么四个部分: 1 ...
- web开发:css总结与应用
一.常用标签的使用 二.边界圆角 三.背景样式 四.精灵图 五.盒模型布局细节 六.盒模型案例 七.w3c主页 一.常用标签的使用 <!DOCTYPE html> <html> ...
- ftp服务器终端登录后乱码处理方法
首先在windows上用资源管理器登录看看会不会乱码,如果不会,说明是GBK编码 因为windows默认是GBK(936),linux默认(UTF-8) 因为FTP服务器我们修改不了,如果用linux ...
- SQLite3学习笔记(1)
命令: DDL-数据定义: CREATE -- 创建一个新的表,一个表的视图,或者数据库中的其他对象 ALTER -- 修改数据库中的某个已有的数据对象,比如一个表 DROP -- 删除整个表,或者表 ...