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

基本数据结构的Java实现

阅读更多

链表<o:p></o:p>

class Node {<o:p></o:p>

Object item; Node next;<o:p></o:p>

  Node (Object v) {<o:p></o:p>

item = v; next = null;<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

头指针,空尾指针<o:p></o:p>

初始化:head = null;<o:p></o:p>

x后插入t<o:p></o:p>

if ( x == null)<o:p></o:p>

{ head = t; head.next = null; }<o:p></o:p>

else { t.next = x.next; x.next = t; }<o:p></o:p>

移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>

循环遍历:for ( t = head; t != null; t = t.next )<o:p></o:p>

检查链表是否为空:if ( head == null )<o:p></o:p>

空头结点,空尾指针<o:p></o:p>

初始化:head = new Node(); head.next = null;<o:p></o:p>

x后插入tt.next = x.next; x.next = t;<o:p></o:p>

移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>

循环遍历:for ( t = head.next; t != null; t = t.next )<o:p></o:p>

检查链表是否为空:if ( head.next == null )<o:p></o:p>

空头结点,空尾结点<o:p></o:p>

初始化:head = new Node(); z = new Node(); head.next = z; z.next = z;<o:p></o:p>

x后插入tt.next = x.next; x.next = t;<o:p></o:p>

移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>

循环遍历:for ( t = head.next; t != z; t = t.next )<o:p></o:p>

检查链表是否为空:if ( head.next == z )<o:p></o:p>

循环链表<o:p></o:p>

第一次插入:head.next = head;<o:p></o:p>

x后插入tt.next = x.next; x.next = t; <o:p></o:p>

移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>

循环遍历:t = head; do { t = t.next; } while ( t != head );<o:p></o:p>

检查是否只有一个数据项:if ( head.next == head )<o:p></o:p>

<o:p> </o:p>

堆栈<o:p></o:p>

数组实现<o:p></o:p>

class Stack {<o:p></o:p>

  private Object[] s;<o:p></o:p>

  private int n;<o:p></o:p>

  Stack ( int maxN ) {<o:p></o:p>

    s = new Object[maxN]; n = 0;<o:p></o:p>

}<o:p></o:p>

boolean isEmpty() { return ( n == 0 ); }<o:p></o:p>

void push ( Object item ) { s[n++] = item; }<o:p></o:p>

Object pop() {<o:p></o:p>

  Object t = s[--n]; s[n] = null; return t;<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

链表实现<o:p></o:p>

class Stack {<o:p></o:p>

  private Node head;<o:p></o:p>

  private class Node {<o:p></o:p>

Object item; Node next;<o:p></o:p>

Node ( Object item, Node next ) {<o:p></o:p>

  this.item = item; this.next = next;<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

Stack ( Object maxN ) { head = null; }<o:p></o:p>

boolean isEmpty() { return ( head ==null ); }<o:p></o:p>

void push ( Object item ) { head = new Node(item, head); }<o:p></o:p>

Object pop() {<o:p></o:p>

  Object v = head.item;<o:p></o:p>

  Node t = head.next;<o:p></o:p>

  head = t;<o:p></o:p>

  return v;<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

FIFO队列的链表实现<o:p></o:p>

class Queue {<o:p></o:p>

  private class Node {<o:p></o:p>

Object item; Node next;<o:p></o:p>

Node ( Object item ) {<o:p></o:p>

  this.item = item; this.next = null;<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

Private Node head, tail;<o:p></o:p>

Queue ( Object max ) { head = null; tail = null; }<o:p></o:p>

boolean isEmpty() { return ( head ==null ); }<o:p></o:p>

void put ( Object item ) {<o:p></o:p>

  Node t = tail;<o:p></o:p>

  tail = new Node(item);<o:p></o:p>

  if ( empty() )<o:p></o:p>

    head = tail;<o:p></o:p>

  else t.next = tail<o:p></o:p>

}<o:p></o:p>

Object get() {<o:p></o:p>

  Object v = head.item;<o:p></o:p>

  Node t = head.next;<o:p></o:p>

  head = t;<o:p></o:p>

  return v;<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

分享到:
评论

相关推荐

    数据结构JAVA实现

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

    JAVA基本5种数据结构的实现。

    虽然这里没有明确的堆实现文件,但Java提供了`java.util.PriorityQueue`来实现堆数据结构。 在实际编程中,这些数据结构的选择取决于特定的需求,例如快速访问、高效的插入和删除等。理解并熟练使用这些数据结构...

    java实现数据结构

    下面将详细介绍Java中实现链表、栈、队列、优先级队列以及哈希表这些基本数据结构的方法。 首先,我们来看链表。链表是一种线性数据结构,其中的元素不连续存储,而是通过指针连接。Java中的`LinkedList`类实现了`...

    数据结构java版

    9. **排序算法**:在Java中实现的各种排序算法,如冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序,都是基于特定数据结构的优化操作。 10. **搜索算法**:深度优先搜索(DFS)和广度优先搜索(BFS)是...

    数据结构java代码实现

    这里我们主要关注的是"数据结构java代码实现",这通常涉及到一系列用于教学或实践的数据结构示例。 首先,我们要理解数据结构的基本概念。数据结构是组织和管理大量数据的方式,如数组、链表、树、图等。它们直接...

    数据结构(java版本)

    《数据结构(Java版本)》这本书正是为此目的而编写,旨在将理论与实际编程相结合,通过Java语言来实现各种经典的数据结构。 首先,书中的基础部分会介绍数据结构的基本概念,如数组、链表、栈和队列。数组是最基本...

    数据结构java语言描述课后答案.docx

    标题提及的是“数据结构java语言描述课后答案”,这通常指的是学生在学习数据结构课程时,针对教材或课堂讲解的习题解答。这些答案涵盖了数据结构的基本概念、逻辑结构、存储结构以及算法的时间和空间复杂度分析。 ...

    JAVA版数据结构.pdf

    文中提到了数据结构(Data Structures)和Java语言的结合,这表明文档可能涉及数据结构在Java中的实现方式,包括基本的结构如数组、链表、栈、队列、树和图等,以及它们的特性、操作方法和应用场景。 2. Java中的...

    邓俊辉版java 数据结构源码

    这些基本数据结构是计算机科学和软件工程的基础,对于理解和解决复杂问题至关重要。 在深入研究源码之前,我们需要先了解一些Java编程基础,包括类、对象、继承、封装、多态等概念。数据结构的实现往往涉及到这些...

    数据结构JAVA版

    学习数据结构Java版,你需要理解这些基础概念,熟悉它们的实现原理,并能够根据实际需求选择合适的数据结构。通过实践,你将掌握如何利用Java的数据结构优化算法,提高代码性能,解决复杂问题。

    数据结构 C C++ JAVA

    C、C++ 和 Java 都是广泛用于实现数据结构的编程语言,每种语言都有其独特的特性和优势。 在C语言中,由于其低级特性,可以直接对内存进行操作,这使得C语言在实现数据结构时更加灵活,但同时也需要开发者具有较高...

    Java数据结构课件

    在Java中,数组是最基本的数据结构,它允许存储同类型的元素序列。数组提供了直接访问元素的能力,但插入和删除元素的效率较低。链表则通过节点之间的指针链接元素,使得插入和删除操作相对快速,但访问元素的速度较...

    数据结构java版(第2版)

    《数据结构java版(第2版)》以及其配套的“数据结构讲义”旨在帮助学习者深入理解这些概念,并通过Java语言进行实践。 在Java中,数据结构通常分为基本数据结构和高级数据结构两大类。基本数据结构包括数组、链表...

    数据结构(java描述)

    总之,《数据结构(Java描述)》一书涵盖了数据结构的基础理论和Java实现,对于理解算法和提升编程能力有着重要的作用。通过学习,读者不仅能掌握各种数据结构的特性,还能学会如何在实际问题中选择合适的数据结构和...

    Java版数据结构(程序员必须看)

    在Java这样的面向对象语言中,数据结构和算法的实现往往涉及到数据类型的使用。Java提供了丰富的数据类型,包括基本类型(如int、float)和构造类型(如数组、类)。数据对象是某种数据类型的元素集合,而数据结构则...

    数据结构(Java版)源代码

    本资源"数据结构(Java版)源代码"提供了以Java语言实现的数据结构的详细实现,对于学习和理解数据结构有着重要的价值。 1. **数组**:数组是最基本的数据结构,它是一系列相同类型元素的集合,可以通过索引来访问每...

    数据结构和算法 java

    在Java中实现数据结构和算法,能够帮助开发者更高效地解决问题,优化程序性能。 数据结构是一种组织和存储数据的方式,它能方便数据的插入、删除和查找操作。常见的数据结构包括数组、链表、栈、队列、哈希表、树...

    JAVA实现类似C#的DataTable数据结构_适用于安卓

    总结来说,Java实现类似C#的DataTable数据结构是通过对现有数据结构的组合和扩展来实现的,这需要理解DataTable的核心特性和需求,然后用Java的语法和设计模式来复现这些功能。通过这样的实践,开发者可以深入理解...

Global site tag (gtag.js) - Google Analytics