`
zhaohaolin
  • 浏览: 1011118 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java数据结构和算法--栈与队列

阅读更多

(1)栈 

Java代码  收藏代码
  1. package ChapterOne;  
  2.   
  3. public class Stack {  
  4.     //栈数组  
  5.     long stackArr[];  
  6.     //栈的大小  
  7.     int maxSize;  
  8.     //栈的顶部  
  9.     int top;  
  10.     //初始化一个大小为size的栈  
  11.     public Stack(int size){  
  12.         maxSize = size;   
  13.         stackArr = new long[size];  
  14.         top = -1;  
  15.     }  
  16.     //出栈操作  
  17.     public long pop(){  
  18.         return stackArr[top--];  
  19.     }  
  20.     //进栈操作  
  21.     public void push(long value){  
  22.         stackArr[++top] = value;  
  23.     }  
  24.     //判断栈是否为空  
  25.     public boolean isEmpty(){  
  26.         return top == -1;  
  27.     }  
  28.     //判断栈是否已满  
  29.     public boolean isFull(){  
  30.         return top == maxSize-1;  
  31.     }  
  32.     //取栈顶元素  
  33.     public long peek(){  
  34.         return stackArr[top];  
  35.     }  
  36.     public static void main(String[] args) {  
  37.         Stack stack = new Stack(10);  
  38.         while(!stack.isFull()){  
  39.             long v = (long) (Math.random()*100);  
  40.             stack.push(v);  
  41.             System.out.print(v+" ");  
  42.         }  
  43.         System.out.println();  
  44.         while(!stack.isEmpty()){  
  45.             long topValue = stack.pop();  
  46.             System.out.print(topValue+" ");  
  47.         }  
  48.         System.out.println();  
  49.     }  
  50. }  

(2)队列 
Java代码  收藏代码
  1. package ChapterOne;  
  2.   
  3. public class Queue {  
  4.     //队列数组  
  5.     private long queueArr[];  
  6.     //队列的前端下标  
  7.     private int front;  
  8.     //队列的尾端下标  
  9.     private int rear;  
  10.     //队列的大小  
  11.     private int maxSize;  
  12.     //队列中元素的个数  
  13.     private int nItems;  
  14.     //初始化一个大小为size的队列  
  15.     public Queue(int size){  
  16.         queueArr = new long[size];  
  17.         maxSize = size;  
  18.         front = 0;  
  19.         rear = -1;  
  20.         nItems = 0;  
  21.     }  
  22.     //插入操作  
  23.     public void insert(long value){  
  24.         //队列已满  
  25.         if(rear == maxSize-1)  
  26.             rear = -1;  
  27.         queueArr[++rear] = value;  
  28.         nItems++;  
  29.     }  
  30.     //删除操作  
  31.     public long remove(){  
  32.         long temp = queueArr[front++];  
  33.         if(front == maxSize)  
  34.             front = 0;  
  35.         nItems--;  
  36.         return temp;  
  37.     }  
  38.     //返回队列第一个元素  
  39.     public long peakFront(){  
  40.         return queueArr[front];  
  41.     }  
  42.     //判断是否为空  
  43.     public boolean isEmpty(){  
  44.         return nItems == 0;  
  45.     }  
  46.     //判断是否已满  
  47.     public boolean isFull(){  
  48.         return nItems == maxSize;  
  49.     }  
  50.     //返回队列中元素的个数  
  51.     public int size(){  
  52.         return nItems;  
  53.     }  
  54.       
  55.     public void print(){  
  56.         for(int i = front;i < front+nItems;i++){  
  57.             System.out.print(queueArr[i]+" ");  
  58.         }  
  59.         System.out.println();  
  60.     }  
  61.       
  62.     public static void main(String[] args) {  
  63.         Queue q = new Queue(10);  
  64.         while(!q.isFull()){  
  65.             long value = (long)(Math.random()*100);  
  66.             q.insert(value);  
  67.         }  
  68.         q.print();  
  69.         while(!q.isEmpty()){  
  70.             q.remove();  
  71.             q.print();  
  72.         }  
  73.         q.print();  
  74.         System.out.println(q.isEmpty());  
  75.     }  
  76. }  

(3)优先队列 
Java代码  收藏代码
  1. package ChapterOne;  
  2.   
  3. public class PriorityQueue {  
  4. font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bot
    分享到:
    评论

相关推荐

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

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

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

    《Java数据结构和算法》第二版是一本深入探讨Java编程中数据结构与算法的权威书籍。这本书涵盖了在软件开发中至关重要的基础知识,旨在帮助程序员提升解决问题的能力和代码效率。高清扫描版提供了清晰的文本和图表,...

    JAVA数据结构与算法-第二版

    总之,《JAVA数据结构与算法-第二版》是一本全面、深入的教程,适合Java程序员、计算机科学学生和对算法有兴趣的读者。通过阅读和实践书中的内容,读者不仅可以提高编程技能,还能培养解决复杂问题的能力,为未来在...

    java数据结构与算法.pdf

    Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...

    数据结构与算法-java

    数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。在Java编程中,理解这些概念可以帮助开发者编写出性能优异的程序。以下是基于标题“数据结构与算法-java”及描述中提到的“数据结构与算法...

    数据结构与算法--Java语言描述

    数据结构与算法是计算机科学的基础,对于任何编程语言来说,理解和掌握它们都是至关重要的,特别是对于Java语言。在这个“数据结构与算法--Java语言描述”的资料中,我们有望深入理解这些核心概念,并通过Java语言来...

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

    根据提供的信息,“Java数据结构和算法中文第二版”这本书主要关注的是数据结构与算法的相关内容。下面将基于这些信息,详细介绍数据结构与算法的核心概念、重要性和应用领域,以及在Java编程环境中如何实现这些概念...

    Java数据结构和算法.pdf

    资源摘要信息是关于Java数据结构和算法的知识点总结,涵盖了数组、栈与队列、链表、递归、哈希表、高级排序、二叉树、红黑树、堆、带权图等数据结构和算法概念。 一、数组 * 数组是相同类型变量的集合,可以使用...

    Java数据结构和算法-学习笔记

    本文基于《Java数据结构与算法》的学习笔记,旨在帮助读者更好地理解和掌握这些核心概念。 #### 二、数据结构概述 数据结构是指一组数据的集合以及它们之间的关系,以及在这组数据上定义的操作。常见的数据结构包括...

    C、C++、JAVA数据结构与算法电子书

    - **栈**:后进先出(LIFO)的数据结构,C、C++和Java都有内置的栈支持,如C++的std::stack,Java的java.util.Stack。 - **队列**:先进先出(FIFO)的数据结构,C++的std::queue,Java的java.util.Queue提供实现...

    Java数据结构和算法(第二版)+源代码+Applets

    Java数据结构和算法是计算机科学中的核心概念,对于任何Java开发者来说,理解和掌握它们都是至关重要的。本资源包“Java数据结构和算法(第二版)+源代码+Applets”为学习者提供了一个全面且深入的学习平台,涵盖了...

    数据结构与算法-Java语言版

    主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2-4树等的查找和遍历等,分析排序、散列等数据结构的应用,图、NP完整性,数据压缩算法、...

    hello-algo-数据结构与算法-zh-csharp.pdf

    本书的内容涵盖了数据结构与算法的基础知识,包括数组、链表、栈、队列、树、图等数据结构,以及排序、查找、图形遍历等算法。书中还提供了大量的编程实践和习题,帮助读者更好地掌握数据结构与算法的知识。 本书的...

    数据结构--表、栈、队列(java)

    本章节介绍了表、栈和队列三种重要的数据结构及其在Java中的实现方式。表作为一种灵活的线性数据结构,既可以基于数组也可以基于链表实现;栈和队列则是具有特定操作规则的特殊表。这些数据结构在算法设计和软件开发...

    Java数据结构和算法(第二版)+随书源代码+applet小程序

    《Java数据结构和算法(第二版)》是一本专为希望深入理解Java编程中的数据结构与算法的读者设计的书籍。这本书的特点是从基础知识逐步引导读者进入复杂领域,通过结合实际的Applet小程序,使得理论知识变得生动直观。...

    数据结构试验2-栈和队列实验报告含源码

    在这个"数据结构试验2-栈和队列实验报告含源码"中,我们将深入探讨两个基本且至关重要的数据结构——栈和队列。 栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。想象一个堆叠的盘子,最后一个放...

    Java数据结构与算法-笔记-代码-课件-资料

    内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、...

Global site tag (gtag.js) - Google Analytics