单向链表的Java实现

一、链表的简单实现

 1 package test01;
 2
 3 /*
 4  * 单向链表的简单实现
 5  * */
 6
 7 class Node{
 8     private String data;
 9     private Node next;
10     public Node(String data){
11         this.data = data;
12     }
13     public String getData() {
14         return data;
15     }
16     public void setData(String data) {
17         this.data = data;
18     }
19     public Node getNext() {
20         return next;
21     }
22     public void setNext(Node next) {
23         this.next = next;
24     }
25 }
26
27 public class LianBiao {
28
29     public static void main(String[] args) {
30         Node n0 = new Node("A");
31         Node n1 = new Node("B");
32         Node n2 = new Node("C");
33         n0.setNext(n1);
34         n1.setNext(n2);
35         Print(n0);
36     }
37
38     private static void Print(Node n0) {
39         System.out.println(n0.getData());
40         if(n0.getNext() != null){
41             Print(n0.getNext());
42         }
43
44     }
45
46 }

二、链表的正宗实现

 1 package test02;
 2
 3 /*
 4  * 单向链表的正宗实现
 5  * */
 6
 7 class Link{
 8     class Node{
 9         private String data;
10         private Node next;
11         public Node(String data){
12             this.data = data;
13         }
14         public void addNode(Node newNode){
15             if(this.next == null){
16                 this.next = newNode;
17             }else{
18                 this.next.addNode(newNode);
19             }
20         }
21         public void printNode(){
22             System.out.println(this.data);
23             if(this.next != null){
24                 this.next.printNode();
25             }
26         }
27     }
28     Node root;
29     public void add(String data){
30         Node newNode = new Node(data);//第一步就是生成节点,接下来就可以参考链表的简单实现方法
31         if(this.root == null){
32             this.root = newNode;
33         }else{
34             this.root.addNode(newNode);
35         }
36     }
37     public void printnode(){
38         this.root.printNode();
39     }
40 }
41
42 public class LianBiao01 {
43
44     public static void main(String[] args) {
45         Link l = new Link();
46         l.add("ROOT");
47         l.add("A");
48         l.add("B");
49         l.add("C");
50         l.printnode();
51     }
52 }
时间: 2024-10-09 18:09:50

单向链表的Java实现的相关文章

简单的单向链表的java实现

链表的实现一个是node,一个是List.node是链表每个基本组成部分,List操作node.我的思路大概是这样. node部分代码: class Node{ private Object data; private Node next; public Node(Object data){ this.data = data; } public void setNext(Node next){ this.next = next; } public void setData(Object data

线性表的Java实现--链式存储(单向链表)

线性表的Java实现--链式存储(单向链表) 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始. 链式存储结构的线性表将采用一组任意的存储单元存放线性表中的数据元素.由于不需要按顺序存储,链表在插入.删除数据元素时比顺序存储要快,但是在查找一个节点时则要比顺序存储要慢. 使用链式存储可以克服顺序线性表需要预先知道数据大小的缺点,链表结构可以充分利用内存空间,实现灵活的内存动态管理.但是链式存储失去了数组随机存取的特点,同时增加了节点的指针域,空

数据结构之链表及其Java实现

数据的存储一般分线性存储结构和链式存储结构两种.前者是一种顺序的存储方式,在内存中用一块连续的内存空间存储数据,即逻辑上相连的物理位置相邻,比较常见的就是数组:后者是一种链式存储方式,不保证顺序性,逻辑上相邻的元素之间用指针所指定,它不是用一块连续的内存存储,逻辑上相连的物理位置不一定相邻.本篇主要介绍链式存储结构基于链表的实现,使用的语言为Java. 链表是一种递归的数据结构,它要么为空(null),要么指向是指向一个结点(node)的引用,该节点含有一个泛型元素(该泛型元素可以是任意数据类型

java版的单向链表的逆序输出

将单向链表逆序输出,方法有三种: a.遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组(最简单的做法) b.使用栈来逆序输出 c.直接将链表逆序然后输出(本文采用的方法) 先介绍算法: 1). 若链表为空或只有一个元素,则直接返回: 2). 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向节点的后继: 3). 重复2),直到q为空 4). 调整链表头和链表尾 示例:以逆序A->B->C->D为例,图示如下 package com.moluo.shujujiegou;

【转】单向链表(单链表)的Java实现

最近被问到链表,是一个朋友和我讨论Java的时候说的.说实话,我学习编程的近一年时间里,学到的东西还是挺少的.语言是学了Java和C#,关 于Web的学了一点Html+css+javascript.因为比较偏好,学习WinForm时比较认真,数据库操作也自己有所研究.但链表这个东西我 还真没有学习和研究过,加上最近自己在看WPF,而课程也到了JSP了,比较紧. 但是我还是抽了一个晚上加半天的时间看了一下单向链表.并且使用Java试着写了一个实例出来.没有接触过链表的朋友可以作为参考,希望大家多提

java版的单向链表的基本操作

首先定义链表节点的结构: package com.moluo.linklist; /** * * @author 行者摩罗 * */ public class Node { private int data; private Node next; public int getData() { return data; } public void setData(int data) { this.data = data; } public Node getNext() { return next;

java 单向链表

简单单向链表 [java] view plaincopyprint? class Node{ private String data; //存储当前节点内容 private Node   next=null; //存储下一下节点 public Node(String data){ this.setDate(data); } public void setDate(String data){ this.data = data; } public void setNext(Node next){ t

单向链表的简单Java实现-sunziren

写在前面,csdn的那篇同名博客就是我写的,我把它现在在这边重新发布,因为我实在不想用csdn了,那边的广告太多了,还有就是那个恶心人的"阅读更多"按钮,惹不起我躲得起. 最近面试的过程中,发现有的公司的面试题考到了链表的逆序,这一块我正好不是特别清楚.于是打算把链表这一块好好的学习学习.在网上搜寻了众多的资料以后,了解到链表的核心是节点与节点之间的互相链接. 于是自己也写了一个单向链表的类,里面包括input插入方法,inputById按指定下标插入方法,deleteAll删除所有节

数据结构——Java实现单向链表

结点类: 1 /** 2 * @author zhengbinMac 3 * 一个OnelinkNode类的对象只表示链表中的一个结点,通过成员变量next的自引用方式实现线性表中各数据元素的逻辑关系. 4 */ 5 public class OnelinkNode { 6 // 保存结点的值 7 public int data; 8 // 保存后继结点的引用 9 public OnelinkNode next; 10 // 构造值为k的结点 11 public OnelinkNode(int