`
NumbCoder
  • 浏览: 24746 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java中的数据结构(2)----链表

阅读更多

单链表:

package com.wz.util;

class Node<T> {
	public T t;
	public Node<T> next;

	Node(T t) {
		this.t = t;
	}

	public String toString() {
		return t.toString();
	}
}

public class SingleList<T> {
	private Node<T> head;
	private int size;

	SingleList() {
		size = 0;
		head = new Node<T>(null); // 表头不放数据
		head.next = null;
	}

	// 插入到链表的前端(表头之后)
	public void insertHead(Node<T> n) {
		n.next = head.next;
		head.next = n;
		size++;
	}

	// 插入到链表的尾部(默认添加方式)
	public void insert(Node<T> n) {
		n.next = null;
		Node<T> current = head.next;
		while (current.next != null)
			current = current.next;
		current.next = n;
		size++;
	}

	// 在指定节点后添加节点
	public void insertTo(Node<T> n1, Node<T> n2) {
		n2.next = n1.next;
		n1.next = n2;
		size++;
	}

	// 删除链表前端节点
	public void delHead() {
		Node<T> current = new Node<T>(null);
		current = head.next;
		head.next = current.next;
		current = null;
		size--;
	}

	// 删除尾节点
	public void delTail() {
		Node<T> current = head.next;
		Node<T> prev = null;
		while (current.next != null) {
			prev = current;
			current = current.next;
		}
		prev.next = null;
		current = null;
		size--;
	}

	// 删除指定节点
	public void del(Node<T> n) {
		Node<T> current = head.next;
		Node<T> prev = null;
		if ((n != null) && (current == n))
			delHead();
		else {
			while ((current != n) && (current != null)) {
				prev = current;
				current = current.next;
			}
			prev.next = current.next;
			current = null;
			size--;
		}
	}
	// 链表长度
	public int getSize() {
		return size;
	}
	// 另外一种计算链表长度的方法
	public int length(){
		int leng = 0;
		Node<T> current = head.next;
		while(current != null){
			leng++;
			current = current.next;
		}
		return leng;
	}

	// 遍历链表并打印
	public void diplay() {
		Node<T> current = head.next;
		while (current != null) {
			System.out.println(current.toString());
			current = current.next;
		}
	}
}

 

3
0
分享到:
评论

相关推荐

    链表(数据结构--Java版)

    链表是一种常用的数据结构,它在计算机科学中扮演着重要的角色。...通过深入学习这些链表的Java实现,你可以更好地理解数据结构的内部工作原理,并将其应用到实际项目中,提升代码的效率和灵活性。

    图解数据结构--使用Java

    全书内容浅显易懂,利用大量且丰富的图示与范例, 详解复杂的抽象理论,从最基本的数据结构概念开始 说明,再以Java工具加以诠释阵列结构、堆栈、链表 、队列、排序、查找等重要的概念,引领读者抓住重 点轻松进入...

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

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

    javalist数据结构-Java数据结构-------List.pdf

    Java中的List接口是集合框架的重要组成部分,它定义了一组有序的元素序列,允许有重复的元素。ArrayList、Vector和LinkedList都是List接口的实现...在实际使用中,根据业务需求权衡性能和功能,选择最适合的数据结构。

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

    在编程领域,数据结构是构建高效算法的基础,而链表作为一种基本的数据结构,对于理解和掌握高级编程技巧至关重要。...通过Java的数据结构实现,我们可以更好地理解这些概念,并在实际项目中灵活运用。

    Java数据结构篇-链表与数组实现栈.pptx.pptx

    Java数据结构是编程中至关重要的组成部分,它们定义了如何有效地存储和操作数据。在这个话题中,我们将重点关注两种常见的数据结构——链表和数组,并探讨它们如何被用来实现栈这一特定的抽象数据类型。 栈是一种...

    0基础学数数据结构--链表

    ### 数据结构之链表 #### 一、链表概述 链表是一种常用的数据结构,在计算机科学领域占有极其重要的地位。链表与数组等其他数据结构相比,在某些操作上具有显著的优势,尤其是在动态调整大小和频繁插入删除的情况...

    java 数据结构 链表

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

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

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

    数据结构作业--击鼓传花

    数据结构是计算机科学中的核心概念,它涉及到如何高效地存储和组织数据,以便于执行各种操作。在这个“数据结构作业--击鼓传花”的项目中,我们探讨的是一个基于Josephus问题的算法实现。Josephus问题是一个经典的...

    java数据结构--学习

    本学习资料包"java数据结构--学习"聚焦于如何在Java环境下理解和应用各种数据结构,旨在提升开发者的技术水平,使其能够编写出更加高效和优化的代码。 1. **数组**:数组是最基本的数据结构,用于存储同类型元素的...

    Java数据结构和算法-带书签目录扫描版

    《Java数据结构和算法-带书签目录扫描版》是一本深入探讨Java编程语言中数据结构和算法的书籍。此扫描版特别包含了完整的书签目录,使得读者在电子版阅读时能够快速定位到所需章节,提高了学习和查阅的效率。 在...

    链表----链表构造

    链表是一种常见的线性数据结构,它通过节点之间的连接来表示数据项。与数组不同,链表中的元素不必存储在连续的内存空间中。每个节点包含两部分:数据部分(用于存储实际的数据)和指针部分(用于指向下一个节点的...

    数据结构-链表(LingkedList)介绍和Java示例代码

    链表是一种重要的线性数据结构,它与数组相比具有独特的特性和优势。链表由一系列节点构成,每个节点包含两部分:数据元素和指向下一个节点的引用。这种结构允许链表在内存中不连续分布,提供了动态扩展和收缩的能力...

    Java数组链表效率-Java数组和链表三种遍历效率对比 数组和链表.pdf

    Java 中的数组和链表是两种常用的数据结构,它们都可以用来存储和操作数据。然而,在实际开发中,选择合适的数据结构和遍历方式对程序的性能和效率有着非常重要的影响。下面我们将对 Java 中数组和链表的三种遍历...

    java 数据结构 遍历链表程序

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

Global site tag (gtag.js) - Google Analytics