`
zhb8015
  • 浏览: 397285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

JAVA单链表实例

    博客分类:
  • J2SE
阅读更多

 

一、概念:单链表是一种顺序存取的结构,为找第 i 个数据元素,必须先找到第 i-1 个数据元素。

二、优点:链表的一种,机制灵活,用途广泛。它可以取代数组,用于其它数据结构的基础,例如栈,队列。除非需要频繁的用下标来访问各个数据,否则在很多数组的地方都可以用链表来代替。

三、参考 <<JAVA数据结构与算法>>

四、实例:关系图见附件。

      Link.java

 

package com.dataconstruct.link;

public class Link {
	public int iData;
	public double dData;
	public Link next;
	
	public Link(int id,double dd) {
		this.iData = id;
		this.dData = dd;
	}
	
	public void displayLink() {
		System.out.println("{" + this.iData + "," + this.dData + "}");
	}
}

 

LinkList.java

package com.dataconstruct.link;

public class LinkList {
	private Link first;

	public LinkList() {
		this.first = null;
	}

	public boolean isEmpty() {
		return (this.first == null);
	}

	public void insertFirst(int id, double dd) {
		Link newLink = new Link(id, dd);
		newLink.next = first;//newLink --> old first
		this.first = newLink;//first --> newLink
	}
	
	public Link deleteFirst() {
		Link temp = this.first;
		this.first = this.first.next;
		return temp;
	}
	
	public void displayList() {
		System.out.println("List (first --> last)");
		Link current = first;
		
		while(current != null) {
			current.displayLink();
			current = current.next;
		}
		System.out.println(" ");
	}
	     public double find(int key) {
       Link1 current = this.first;
       double result = 0;
     
       while (current != null) {
        if (current.iData == key) {
         return current.dData;
        } else {
         current = current.next;
        }
       }
       return result;
      }
     
      public Link delete(int key) {
       Link previous = this.first;
       Link current = this.first;
     
       while (current.iData != key) {
        if (current.next == null) {//last
         return null;
        } else {
         previous = current;
         current = current.next;
        }
       }
     
       if (current == first) {
        this.first = this.first.next;
       } else {
        previous.next = current.next;
       }
     
       return current;
     
      }
}

 

LinkListApp.java

package com.dataconstruct.link;

public class LinkListApp {
	public static void main(String[] args) {
		LinkList linkList = new LinkList();
		int begin = 10;
		int end = 70;
		int k = end/begin;
		double append = 0.99;
		
		for(int i = 0; i < k; i++) {
			linkList.insertFirst(begin, begin + append);
			begin += 10;
		}
		
		linkList.displayList();
		
		while(!linkList.isEmpty()) {
			Link alink = linkList.deleteFirst();
			alink.displayLink();
		}

		linkList.displayList();
	}
}

 

 

   ..........未完待续.....

  • 大小: 27 KB
分享到:
评论

相关推荐

    Java算法(链表操作实例)

    本文将深入探讨Java中链表的操作实例,旨在帮助开发者更好地理解和运用链表来解决实际问题。 首先,我们需要理解链表的基本概念。链表不同于数组,它不连续存储元素,每个元素(称为节点)包含数据以及指向下一个...

    Java算法实例-单链表操作

    在这个"Java算法实例-单链表操作"中,我们将探讨如何在Java中实现单链表,包括其基本操作如插入、删除、遍历等。这些操作对于理解和解决各种算法问题至关重要,尤其对于学习和准备编程考试的学员来说,是非常实用的...

    java单链表的基本操作.zip

    Java单链表是一种常见的数据结构,它在编程中扮演着重要的角色,特别是在处理动态数据集合时。本资料主要涵盖了Java单链表的基本操作,包括链表的定义、创建、插入、删除、遍历等核心概念。 单链表由一系列节点组成...

    java 实现单链表逆转详解及实例代码

    单链表分段逆转 java 实现单链表逆转详解及实例代码

    我的Java单链表练习

    这篇“我的Java单链表练习”博客文章,旨在通过实践帮助读者深入理解单链表的概念、实现以及常见操作。 单链表是一种线性数据结构,每个节点包含两部分:数据域和指针域。数据域存储实际的数据,而指针域指向链表中...

    基于java的循环单链表

    3. 测试类(CircularLinkedListTest):用于测试循环单链表的实现,创建链表实例,插入元素,执行查找、删除操作,并打印链表状态。这有助于验证我们的实现是否正确。 ```java public class CircularLinkedListTest...

    Java实现单链表翻转实例代码

    在Java编程中,单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个值和一个指向下一个节点的引用。单链表的翻转是数据结构与算法中的一个经典问题,通常有两种主要的实现方式:递归和非递归。本篇...

    Java的循环单链表及其测试程序

    在Java中实现循环单链表,我们需要定义一个节点类来存储数据和指针,然后创建链表类来处理节点之间的关系。下面将详细解释循环单链表的原理、如何在Java中实现以及如何进行测试。 首先,理解循环单链表的基本概念:...

    java链表 链表的讲解 java源代码加注释

    至于`TestShape.java`,这可能是一个测试类,用于实例化`LinkList`并执行各种操作,比如添加元素、删除元素、打印链表等,以验证链表功能的正确性。例如: ```java public class TestShape { public static void ...

    java实现数据结构单链表示例(java单链表)

    【知识点详解】 在Java编程中,数据结构是...总之,这个Java实现的单链表实例提供了一组基本操作,包括添加、获取、替换、插入和查找节点。这为我们理解数据结构的基础概念以及在实际编程中应用这些概念提供了基础。

    java单链表逆序用法代码示例

    此外,另一个实例`SingleLinkedReverse`也演示了类似的逆序过程,进一步加深了对单链表逆序的理解。通过这样的代码实践,我们可以更好地掌握单链表逆序的逻辑和实现方法。 总结来说,Java中单链表的逆序可以通过...

    Java模拟单链表和双端链表数据结构的实例讲解

    【Java模拟单链表】 单链表是一种基本的线性数据结构,它的每个节点包含两部分:数据元素和指向下一个节点的引用。在Java中,我们可以创建一个类`Link`来表示链表的节点,该类通常包含一个数据域(如`data`)和一个...

    Java算法实例-双向链表操作

    本实例聚焦于Java中的一个重要数据结构——双向链表,它在很多场景下都有着广泛的应用。双向链表与单链表相比,其独特之处在于每个节点不仅包含指向下一个节点的指针,还包含指向前一个节点的指针,这使得在链表中的...

    java冒泡排序java冒泡排序集锦方法!

    通过创建一个 `RuleBasedCollator` 的实例并设置为中文环境,可以实现按照中文拼音排序的功能。 以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` ...

    一元多项式相加 java实现

    这通常包括创建不同的多项式实例,调用`add`方法,然后检查结果是否符合预期。测试用例应覆盖各种情况,例如:空多项式、只有一个项的多项式、相同和不同指数的项等。 在实际的代码实现中,你可能还会添加一些额外...

    数据结构 单链表 java图形界面实现

    在本项目中,我们主要探讨的是数据结构中的一个重要概念——单链表,以及如何使用Java语言结合图形用户界面(GUI)来实现它。单链表是一种线性数据结构,其中的元素不是顺序存储的,而是通过指向下一个元素的指针...

    java实现单链表增删改查的实例代码详解

    package 数据结构算法.链表; /* *定义节点 * 链表由节点构成 */ public class Node&lt;E&gt; { private E e; //数据data private Node&lt;E&gt; next; //指向下一个节点 public Node() { } public Node(E e) { ...

    Java单链表源码分析-DataStructures-and-Algorithms-Review:不同数据结构和算法的通用指南

    Java单链表源码分析DataStructures-and-Algorithms-Review 待补充... 搜索和排序 树木 二叉搜索树 堆和优先队列 集和地图 多路搜索树 图表 霍夫曼树 哈希... 算法分析 算法的阶是通过消除常数和除算法增长函数中的...

    线性单链表的演示详细操作

    对于"09级线性单链表的演示",这可能是一个教学资源,包含了关于线性单链表的实例代码、讲解文档或者示例演示,可以帮助初学者理解并实践线性单链表的各种操作。学习这些材料可以帮助你更好地掌握链表的基本操作,并...

Global site tag (gtag.js) - Google Analytics