`
zhaoyx
  • 浏览: 21251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA数据结构单向链表实现

阅读更多

        曾几何时学习过数据结构,记得不太清楚了,好像是12年前的大学C语言版。今天拿出现保留的唯一一本大学教材,翻看时感觉还是那么的经典,真心佩服我校老师的水平,只可惜了教材内部使用。

 

        现在用JAVA实现单向列表,表头插入、随机修改、随机删除,为了简单易懂,顺序查找实现,水平有限希望同行吐槽。

 

 

package com.zhaoyx.util;

 

public class Test {

        public static void main(String[] args) {

                LinkNode<String> link = new LinkNode<String>();

                link.addNode("String1");

                link.addNode("String2");

                link.addNode("String3");

                System.out.println(link.getNode(0));

                System.out.println(link.getNode(1));

                System.out.println(link.getNode(2));

                link.putNode(1, "String4");

                System.out.println(link.getNode(1));

                link.removeNode(1);

                System.out.println(link.getNode(1));

        }

}

 

class LinkNode<E> {

        E object;

        LinkNode<E> next;

        int length = 0;

        

        public LinkNode() {

        }

        

        public void addNode(E e) {

                if(0 == length) {

                        next = new LinkNode<E>();

                        next.object = e;

                } else {

                        LinkNode<E> head = new LinkNode<E>();

                        head.object = e;

                        head.next = next;

                        next = head;

                }

                length++;

        }

        

        public void removeNode(int index) {

                if(index >= length) return;

                LinkNode<E> n1 = next;

                LinkNode<E> n2 = next;

                for(int i = 0; i < index; i++) {

                        n1 = n2;

                        n2 = n2.next;

                }

                n1.next = n2.next;

                n2.next = null;

                length--;

        }

        

        public void putNode(int index,E e) {

                if(index >= length) return;

                LinkNode<E> n = next;

                for(int i = 0; i < index; i++) {

                        n = n.next;

                }

                n.object = e;

        }

        

        public E getNode(int index) {

                if(index >= length) return null;

                LinkNode<E> n = next;

                for(int i = 0; i < index; i++) {

                        n = n.next;

                }

                return n.object;

        }

}

 

运行结果:

String3

String2

String1

String4

String1

分享到:
评论

相关推荐

    数据结构 单向链表 双向链表 源程序

    在"第一、二章"的压缩文件中,很可能包含了实现单向链表和双向链表操作的C、C++、Java或Python等语言的源代码示例。这些示例程序可能涉及了初始化链表、插入新节点、删除指定节点、查找特定元素、打印链表内容等功能...

    java语言模拟单向链表

    java语言模拟单向链表,JAVA数据结构

    java 单链表和双向链表的实现

    本话题主要探讨两种常用的数据结构——单链表和双向链表在Java中的实现,以及相关的操作,如在头部添加节点、在尾部添加节点、遍历、逆置和删除。 首先,我们来理解单链表和双向链表的基本概念。单链表是一种线性...

    java 数据结构 链表

    链表是一种基础且重要的数据结构,它在计算机科学和编程,尤其是Java中有着广泛的应用。与数组不同,链表中的元素并不在内存中连续存储,而是通过节点间的引用(或称为指针)来连接。每个节点包含两部分:数据域,...

    java实现的单向链表和双向链表

    本篇将深入探讨由Java实现的单向链表和双向链表。 首先,我们来理解单向链表。单向链表中的每个节点包含两部分:数据域(存储实际数据)和指针域(存储指向下一个节点的引用)。这种结构使得链表只能向前遍历,不能...

    数据结构-链表 JAVA语言实现

    数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439

    单向链表源代码

    这段源代码提供了一个简单的单向链表实现,包括插入、删除和打印链表的方法。你可以根据实际需求扩展其他功能,如查找节点、反转链表等。在培训班中,这样的代码示例有助于学员理解和掌握单向链表的工作原理及其在...

    JAVA单向链表的实现.pdf

    ### JAVA单向链表的实现知识点详解 #### 一、链表基础概念 在深入了解Java单向链表的具体实现之前,我们首先需要了解链表的基本概念。链表是一种线性数据结构,它由一系列节点组成,每个节点包含两部分:数据域和...

    LinkedBlockingQueue + 单向链表基本结构

    该队列的主要特点是其内部数据结构采用了一个单向链表,并且实现了 BlockingQueue 接口,提供了线程安全的插入、删除和获取元素的操作。 单向链表是一种简单的数据结构,由一系列节点组成,每个节点包含数据以及...

    java单向链表代码实现

    在Java编程中,单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和指向下一个节点的引用。这个数据结构允许快速插入和删除操作,但不支持随机访问。下面我们将深入探讨Java中单向链表的...

    我自己java数据结构之链表

    在Java中,链表主要分为单向链表和双向链表,而`LinkedList`类实现了`Deque`(双端队列)、`List`和`Queue`接口,因此它是一个双向链表。 `ArrayList`则基于数组实现,它提供了一个动态可变大小的数组,允许在任意...

    单向链表实现的叫号程序

    在这个名为"单向链表实现的叫号程序"的案例中,我们可以通过分析`CallNum.java`文件来理解如何利用单向链表来实现一个简单的财务叫号系统。 首先,单向链表不像数组那样有一个连续的内存空间,它的每个元素(节点)...

    基于Java实现数据结构链表相关程序.zip

    2. **Java中的链表实现**: - **LinkedList类**:Java集合框架中的`java.util.LinkedList`类提供了链表数据结构的实现。它实现了List接口,支持添加、删除和修改元素,以及高效的迭代。 - **Node类**:LinkedList...

    Java算法(链表操作实例)

    在编程领域,算法是解决问题的关键,而链表作为一种基础数据结构,在实现各种复杂算法时扮演着重要角色。本文将深入探讨Java中链表的操作实例,旨在帮助开发者更好地理解和运用链表来解决实际问题。 首先,我们需要...

    非循环单向链表JAVA实现

    非循环单向链表是一种常见的数据结构,在Java中实现它能帮助我们理解链表的基本操作,如插入、删除和遍历。在这个主题中,我们将深入探讨如何在Java中创建一个非循环单向链表,以及如何通过源码来实现其核心功能。 ...

    试析用Java实现链表数据结构.pdf

    3. 链表数据结构:介绍了链表的基本概念,包括数据域、指针域、单向链表、双向链表和循环链表的区别。 4. 链表的Java实现:通过具体的Java代码示例,说明了如何实现链表的基本操作,包括创建节点、链表的遍历、删除...

    java-数据结构代码实现

    本资料包“java-数据结构代码实现”提供了使用Java语言实现数据结构的实例,旨在帮助开发者加深对数据结构的理解并提升编程技能。 1. **链表**:链表是一种动态数据结构,其元素在内存中不是顺序排列的。Java中的...

    java单向链表的实现实例

    Java中的单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的引用。在这个实例中,我们将详细讨论如何在Java中实现单向链表,包括创建节点、插入节点、显示链表、...

Global site tag (gtag.js) - Google Analytics