`
teibunsei
  • 浏览: 16023 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java数据结构之链表

    博客分类:
  • Java
阅读更多
假设读者有一定数据结构应用经验,比如写过数组,队列,链表。
计算机中,有数据结构这种概念,


          (作者大胆假设)是因为
1.计算机自身特点,即底层进行数据交换时寻址等客观因素的限制,
因为存储空间分为连续的和非连续的,访问非连续空间时怎么将其联系起来,就成了
链表要解决的问题。
2.具体应用的时候节省空间时间。(假设结束)


链表的java 实现。

java中最基础的,最常见的联系是   (类)对象,与其内部的属性、方法的联系,

(类)对象可以通过方法或者直接访问的形式调取 自身的属性, 一个类的属性分为
两类,一种直接访问存储在内存!堆中的数值。 另一种 叫引用对象, 要通过 存储在内存!栈 中的对象名, 获取地址 , 才能取的 对应在内存!栈中的数据。

刚才所说的解决内存不连续的问题,估计读者也有解决方案了吧?

可以用这种 (类)对象中的特殊的属性 “引用对象” 来实现,

(实现思路)
为了形象化, 我们引用生活中 车链子 ,英语(chain), 帮助辅助记忆。
创建 节点(类)对象

class Node()
{
   Object data;
   Node nextnode;
}

这样就能实现一个节点 中间 还有一个 节点。

但是在实际应用中, 我们 不能 每次都在 需要存储的时候 敲

如下重复的代码

Node node1 = new Node ();
node1.data = xxx;

需要存储第二个数据的时候;

Node node2 = new Node();
node2.data = xxx;
node1.nextnode=node2;

所以, 可以搞一个 类,将这些重复性代码 都写进去, 该类名曰:链表


又根据刚才的节点的特点,有三种,出现在第一个的节点,因为有了它,就可以跟其他的节点联系起来,
如果你跟我说 我可以直接从第二个访问, 可以去试试,这里不建议把问题复杂化。

class Linked(){
     Node diyige;   其实习惯命名为 root; 洋气0
     public void add(Object 需要添加的数据){
        Node node2 = new Node();
        node2.data = (传进来的)需要添加的数据;
        diyige.nextnode= node2;
     }               当需要添加第二个数据的时候,哈哈 只需轻轻调用这个函数。 

     但是还有一点,如果命名为node2,下一个莫非要用node3?
   
     有聪明的告诉我,没事,反正是局部变量命名,又不会重名,就这么用呗。

     好吧,那么我们还可以再聪明一点,我们不用考虑节点之间的整体的联系(node1,node2,node3...),只需考虑两个节点之间的关系 即这是新添加的节点,对于第一个节点来说属于 next(newtnode)。

     所以经过修改....


     class Linked(){
     Node root;   命名为 root; 洋气0
    
public void add(Object 需要添加的数据){
        Node newnode= new Node();
        newnode.data = (传进来的)需要添加的数据;
        root.nextnode= newnode;
     }               当需要添加第二个数据的时候,哈哈 只需轻轻调用这个函数。 


}

其他的方法 例如访问

public void get()
{
  
}

等就不一一写了, 良心编码。





分享到:
评论

相关推荐

    我自己java数据结构之链表

    总结一下,本主题涵盖了Java中的链表数据结构,包括`LinkedList`和`ArrayList`的实现,以及如何通过`Interface`和`Iterator`进行操作。理解这些概念对于编写高效的Java代码至关重要。通过实践和学习,你可以更好地...

    Java数据结构 线性表,链表,哈希表是常用的数据结构

    Java数据结构 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构

    Java数据结构之链表、栈、队列、树的实现方法示例

    "Java数据结构之链表、栈、队列、树的实现方法示例" 在计算机科学中,数据结构是一种组织和存储数据的方式,以便实现高效的数据存取和处理。Java数据结构中常用的数据结构有链表、栈、队列、树等,本文将详细介绍...

    java 数据结构 遍历链表程序

    本篇文章将深入讲解Java中链表数据结构的遍历程序,以及如何通过`LinkListFour.java`这个文件来实现链表的遍历。 首先,链表不同于数组,它不连续存储数据,而是通过节点间的引用关系构成。每个节点包含两部分:...

    java 数据结构 链表

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

    数据结构JAVA实现

    在这个名为“数据结构JAVA实现”的压缩包中,我们可以看到作者提供了三种重要的数据结构——链表、有序二叉树和队列的Java代码实现。 首先,让我们详细探讨链表。链表是一种线性数据结构,与数组不同,它不连续存储...

    基于java数据结构链表写的猴子选大王

    《基于Java数据结构链表实现的“猴子选大王”》 在计算机科学中,数据结构是编程的基础,它涉及到如何高效地存储和处理数据。本文将深入探讨一个基于Java数据结构链表实现的经典问题——“猴子选大王”,也称作...

    java 数据结构 双向链表

    这是个java编的双向链表的演示,数据结构是编程中很重要,但很难懂的一部分

    Java数据结构之链表(动力节点之Java学院整理)

    在Java中,我们可以使用类来实现链表的数据结构。 首先,我们来看单链表的一些基本操作: 1. **insertFirst**: 在链表头部插入新节点。这个操作的时间复杂度是O(1),因为只需要改变头节点的引用即可。 ```java ...

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

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

    Java语言编写的数据结构-链表实现

    在编程领域,数据结构是构建高效算法的基础,而链表作为一种基本的数据结构,对于理解和掌握高级编程技巧至关重要。本文将详细探讨如何使用Java语言来实现链表,包括顺序表和单链表、双链表。 首先,我们来看顺序表...

    java模拟实现数组链表树图等数据结构

    本项目“java模拟实现数组链表树图等数据结构”旨在帮助初学者通过实际操作来理解这些基本数据结构及其工作原理。 首先,数组是最基础的数据结构,它是一个有序的元素集合,元素可以通过索引来访问。在Java中,数组...

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

    数据结构链表是计算机科学中最为基础和重要的数据结构之一,它的灵活多变使得在数据存储、管理和操作上具有更高的效率。本文将基于Java语言来探讨链表相关程序的实现和特点,以及Java内存分配与回收机制对链表实现的...

    java数据结构之实现双向链表的示例

    在Java中,双向链表是一种重要的数据结构,它允许在链表中的元素之间进行前后双向导航。本示例将详细介绍如何在Java中实现一个简单的双向链表,并提供相关的操作方法。 双向链表由一系列节点组成,每个节点包含三个...

    Java数据结构和算法中文第二版_Java数据结构_

    《Java数据结构和算法中文第二版》是一本深入探讨Java编程中数据结构和算法的书籍。数据结构是计算机科学的基础,它涉及到如何有效地组织和存储数据,以便在各种操作下高效地访问和修改。算法则是解决问题的具体步骤...

    Java常见数据结构面试题(带答案)

    "Java常见数据结构面试题(带答案)" 以下是对Java常见数据结构面试题的...本篇文章主要介绍了Java常见数据结构面试题,涵盖了栈、队列、链表、线性表、树、算法、数据结构等知识点,希望对广大的程序爱好者有所帮助。

    求解约瑟夫环 数据结构循环链表 java求解

    其中,循环链表是一种常用的数据结构,它通过链式存储方式形成一个没有头尾之分的闭合结构,非常适合用来模拟这种环形排列的问题。 循环链表由一系列节点组成,每个节点包含数据和指向下一个节点的指针。在Java中,...

    数据结构链表演示(java swing)

    在本项目中,“数据结构链表演示(java swing)”利用了Java Swing库来创建一个图形用户界面(GUI),直观地展示链表和堆栈的操作。 Java Swing是Java AWT(Abstract Window Toolkit)的一个扩展,提供了丰富的组件...

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

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

Global site tag (gtag.js) - Google Analytics