我的另一个博客上镜像来的
Java实现数据结构栈stack和队列Queue
Google后发现大多数文章都是通过LinkedList类实现,当然JDK有自带的Stack类
回顾JDK提供的集合类
容器(集合)框架如下:
集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身。
集合类型主要有3种:set(集)、list(列表)和map(映射)。
Collection接口
├List 接口
│├LinkedList 链表
│├ArrayList 顺序结构动态数组类
│└Vector 向量
│ └Stack 栈
Map接口
├Hashtable
├HashMap
└Set接口
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet(也是接口)<--TreeSet
LinkedList, 查阅JDK
List接口的链表列表实现。实现所有可选的列表操作,并且允许所有元素(包null)
LinkedList类还为在列表的开头及结尾get,remove和insert元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈,队列或双端队列
注意此实现不是同步的
JDK本身提供的Stack类
提供了通常的push和pop操作,以及取堆栈顶点的peek方法,测试堆栈是否为空的empty方法,在堆栈中查找项并确定离栈顶的距离,共五个方法。
JDK中实现这个类本身继承自Vector这个类(since JDK1.0)
数据结构中 栈的定义及基本运算
栈和队列都属于线性结构,是两种在运算上受到某些限制的特殊线性表,他们比一般线性表更简单。
栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,称为栈顶(top),另一端为固定的一端,称为栈底
栈顶,栈底,空栈,栈的特性,
退栈,进栈
栈的运算:
初始化栈,进栈push,出栈pop,,取栈顶元素(即是查看下一个要出栈的元素,也叫peek),判断空
用LinkedList实现stack
其实主要是实现 进栈push,出栈pop,,取栈顶元素这几个方法
package org.simoncook.examtest;
import java.util.LinkedList;
public class MyStack {
private LinkedList ll = new LinkedList();
public void push(Object obj){
//将指定元素插入此列表的开头。
ll.addFirst(obj);
}
public Object pop(){
//移除并返回此列表的第一个元素.
return ll.removeFirst();
}
public Object peek(){
// 返回此列表的第一个元素。
return ll.getFirst();
}
public boolean empty(){
return ll.isEmpty();
}
}
数据结构队列
参考
http://blogger.org.cn/blog/more.asp?name=eaglebetter&id=17232
队列(Queue)的定义
队列的特性队列的实例队 列的基本运算
(1) 入队操作:InQueue(q,x)
(2)出队操作:OutQueue(q,x)
(3)读队头元 素:ReadFront(q,x)
(4)显示队列中元素ShowQueue(q)
(5)判队空操作:QEmpty(q)
(6)判 队满操作:QFull(q)
(7)求队列长度Qlen(q)
实现代码:
package com.gc.list;
import java.util.*;
public class MyQueue {
private LinkedList ll=new LinkedList();
//入队操作
public void put(Object o){
ll.addLast(o);
}
//使用removeFirst()方法,返回队列中第一个数据,然后将它从队列 中删除
//出队操作
public Object get(){
return ll.removeFirst();
}
public boolean empty(){
return ll.isEmpty();
}
分享到:
相关推荐
栈(Stack) 队列(Queue) 双端队列(Deque) 循环队列 哈希表(HashTable) 树形数据结构 二叉树(BinaryTree)、二叉搜索树(BinarySearchTree、BST) 平衡二叉搜索树(BalancedBinarySearchTree、BBST) AVL树...
约瑟夫环 leetcode DataStructure 数据结构与算法(Java实现) ...Stack利用java组合实现栈 05-队列 Queue队列实现 Deque双端队列实现 CircleQueue环形队列实现 CircleDeque环形双端队列实现 06-二叉树
这些文件在 matlab 中实现了列表、队列、堆栈数据结构,队列和堆栈比 java 的替代方案要快一点。 CStack 定义一个栈数据结构 它喜欢 java.util.Stack,但是,它可以使用 CStack.content() 来返回堆栈的所有数据(在...
基于 Java 实现的队列和堆栈; 上次上传的那两个也是一样的,不过我以前由于要积分来下载别的资源,只好把以前的那两个的下载积分设置为6来增加我的积分。
【队列Queue】队列 Queue、双端队列 DeQueue、循环队列 CircleQueue、双端循环队列 CircleDeque 源码实现(Java) 【栈Stack】栈 Stack 源码 【二叉搜索树BST】二叉搜索树 BST 实现源码 【AVL树】AVLTree 实现源码 ...
9. 使用Java集合类实现队列:演示了如何使用Java集合类中的Queue接口来实现队列数据结构。 10. 多线程编程:创建和启动线程:展示了如何通过实现Runnable接口创建一个新线程,并演示了多线程编程的基本概念。
[问题描述] 设停车厂只有一个可停放几辆汽车的狭长通道,且只有—个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆...4.设计等待队列WaitQueue 5.定义结点类Node 6.搭建管理界面
CIS 313项目:使用链接堆栈和链接队列数据结构检查短语是否是回文。 设置 在您的计算机上克隆此git存储库,然后导航到正确的目录: git clone https://github.com/momo-ozawa/palindrome-stack-queue.git cd path/...
全国计算机二级JAVA笔试分类模拟题算法和数据结构、程序设计基础全文共21页,当前为第1页。全国计算机二级JAVA笔试分类模拟题算法和数据结构、程序设计基础全文共21页,当前为第1页。二级JAVA笔试分类模拟题算法和...
韩顺平JAVA数据结构与算法、跟着写的代码 当然,附带有测试github的作用 src文件夹才是源码 目录结构 主要目的是学习java的数据结构 重点是算法 list list下有双向链表、单向循环链表约瑟夫问题、单向链表 queue ...
数据结构2.1 栈固定大小字符串栈实现见:collection/FixedCapacityStackOfString.java固定大小泛型栈实现见:collection/FixedCapacityStack.java动态调整大小栈实现见:collection/ResizingArrayStack.java基于链表...
Node.js 中一些常见数据结构的简单 Java 式实现。 基于 [adrianko's] ( ) 实现 [PHP 数据结构] ( )。 安装和使用模块 使用 npm 安装 npm install node-data-structures 需要模块 var ds = require ( 'node-data-...
基本的Java数据结构用简单易读的Java实现的各种(基本)数据结构。介面堆栈接口队列接口树木二进制搜索树AVL树最小堆基本/各种数据结构链表哈希表队列(ArrayQueue,ListQueue) 堆栈(ArrayListStack,ListStack)...
stackqueue--栈和队列 string--串 tree--树 leetcode_agorithm leetcode算法示例题解 数据机构 线性表 线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个...
栈stack, 队列 queue, 双端队列 dequeue, 集合set, 映射map(hash or map), etc 二维 基础: 树tree, 图graph 二叉搜索树 binary search tree, 红黑树(red-black tree, AVL), 堆heap, 并查集disjoint set, 字典树 Trie...
225-用队列实现栈 232-用栈实现队列 208-实现Trie树 1188-设计有限阻塞队列 生产者消费者模式 1.2 Trie树/字典树 1.3 2、树 Title Solution1 Solution2 Addition1-java、python中提供的数据结构 1、java 1.1 Queue ...
数据结构与队列 package: queue 数组模拟队列 package: sparse(表示稀疏数组) 链表 pakage: linked 栈 package: stack 哈希表(散列) hash是一种数据结构 value = hash(key) 哈希值 = 散列函数(关键字) 递归 ...
csci 211 作业 1 简单链接数据结构 截止日期:20131 年 10 月 14 日,星期一 该作业提供 Eclipse 调试器、JUnit 测试、测试驱动开发和实现链接数据结构的接触和经验。 概述 该作业要求您实现和测试堆栈、队列、双向...
数据结构和算法--Java 所有算法均以Java实现(出于教育目的) 这些实现是出于学习目的。 这些实现的效率可能不如Java标准库。 表中的内容:: 搜索算法 排序算法 数据结构 堆 队列 链表 树 贪婪算法 练习题
Java 数据结构算法 使用 Java 的数据结构算法 先决条件 git 2.6+ Maven 3+ Java 8+ 排序 、 、 、 、 、 、 搜索 二进制, 顺序 数据结构 堆 堆栈数组, 堆栈链接 队列 数组或链接 最小/ 最大优先级队列 ...