数据结构-堆栈

堆栈是操作受限的线性表。堆栈只能对表尾进行读出写入操作,这个表尾称为栈顶,表头称为栈底,没有数据元素的称为空栈。堆栈是后进先出的线性表。

在java中,因为Stack<E>的父类是Vector<E>,所以Stack<E>也是线程安全的。

Stack.java(80):     public synchronized E pop() {

Stack.java(98):     public synchronized E peek() {

Stack.java(130):     public synchronized int search(Object o) {

ArrayList,LinkedList和Vector只要遵循堆栈操作的规则,是完全可以实现堆栈的功能的。

堆栈一般有以下操作:

push = add :将元素推入栈中。

pop = { obj = peek();remove(size() - 1); return obj;} :取出栈顶元素,并将该元素从栈中删除。

peek = get(size() - 1) :取出栈顶元素,不执行删除。

实例:

Stack stack = new Stack();

for ( int i = 0; i &lt; args.length; i++){

stack.push(new Integer(args[i]));

}

while(!stack.empty()){

Object obj = stack.pop();

System.out.println(obj);

}

java 类 1 2 3 4 5 6 7 8 9

9

8

7

6

5

4

3

2

1

时间: 2024-08-22 22:32:19

数据结构-堆栈的相关文章

数据结构-堆栈动态存储

new/delete 和 malloc/free 的关系 C语言中利用库函数malloc和free来分配和撤销内存空间的. C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数. 注意: new和delete是运算符,不是函数,因此执行效率高. 虽然为了与C语言兼容,C++仍保留malloc和free函数,但建议用户不用malloc和free函数,而用new和delete运算符. 堆和栈的区别 1.管理方式不同: 2.空间大小不同: 3.能否产生碎片不同: 4

数据结构-堆栈和队列最简单的实现(Python实现)

OK,上篇博客我们介绍了双向链表以及代码实现,这篇文章我们来学习堆栈和队列. 队.栈和链表一样,在数据结构中非常基础一种数据结构,同样他们也有各种各样.五花八门的变形和实现方式.但不管他们形式上怎么变,队和栈都有其不变的最基本的特征,我们今天就从最基本,最简单的实现来看看队列和堆栈. 不管什么形式的队列,它总有的一个共同的特点就是"先进先出".怎么理解呢?就像是超市排队结账,先排队的人排在队的前面,先结账出队.这是队列的特征. 而堆栈则和队列相反,它是"先进后出",

巧用javascript数组实现数据结构-堆栈与队列

简单的利用javascript的数组实现数据结构中的堆栈和队列.Stack.js源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72

堆栈和队列

// 堆栈.cpp : 定义控制台应用程序的入口点.//一种数据结构//堆栈中的元素遵循后进先出的原则(LIFO)后入栈的元素先出栈//队列//队列中的元素遵循先进先出的原则,先进队列的元素先出队列 //stack  堆栈 适配器容器  是由其他容器实现的(可以指定由其它容器实现)/*push()压入堆栈pop()出栈top()栈顶元素size()大小(个数)*///queue  队列 适配器容器  是由其他容器实现的(可以指定由其它容器实现)/*push()加入队列front()取队头元素ba

集合知识点整理

Collection接口 1综述:集合接口Collection 接口java.util包 Collecton接口常用的子接口有:List接口(列表,序列).Set接口(集) List接口常用的子类有:ArrayList类(数组列表).LinkedList类(链表) Set接口常用的子类有:HashSet类(哈希表).LinkedHashSet类(基于链表的哈希表) boolean add(E e) 确保此 collection 包含指定的元素(可选操作). boolean addAll(Coll

python练习3

1. 通过列表实现堆栈的数据结构; 堆栈是一个后进先出的数据结构. 2.. 通过列表实现队列的数据结构; 队列是一种先进先出的数据结构. 3.# (2017-网易-笔试编程题)-字符串练习 - 题目描述: 小易喜欢的单词具有以下特性: 1.单词每个字母都是大写字母 2.单词没有连续相等的字母 3.单词没有形如"xyxy"(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续. 例如: 小易不喜欢"ABBA",因为这里有两个连续的'B' 小易不喜欢&

python基础知识3(列表和元组)

# 列表(可变数据类型) ## 列表的定义 列表是打了激素的数组,数组只能存储同种类型的数据,而列表像一个仓库,存储不同类型的数据. l = [] l = [1] l = [1,(1,2),"hello",[1,2]] ## 列表的特性 - 索引 - 切片 - 重复 - 连接 ## 列表的方法 ### 增加: - l.append()//末尾追加单个元素 - l.extend()//末尾追加多个元素 - l.insert()//指定位置插入单个元素 ### 删除 - l.remove(

利用Olami SDK 实现语音控制计算器(iOS)

博客链接:http://blog.csdn.net/scarlettzhao0602/article/details/76576836 一.简介: Olami Calculator是一款在键盘输入算式的普通计算器的基础上,增加了支持语音控制输入算式输出结果的人工智能计算器.此外还增加了多种动画效果,计算结果提示音功能,多元化主题换肤功能,以及保存计算公式,侧滑栏查看收藏记录等功能.网上也有许多语音计算器,但是打开看,只是添加了按钮提示音等,并不能识别我们对着计算器说的内容,而Olami Calc

06 序列:字符串、列表和元组 - 《Python 核心编程》

?? 序列简介 ?? 字符串 ?? 列表 ?? 元组 6.1 序列顺序访问 序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到. 而多个元素可以通过切片操作的方式一次得到. 下标偏移量是从0 开始到总元素数-1 结束. 标准类型操作符 标准类型操作符一般都能适用于所有的序列类型. 序列类型操作符 成员关系操作符 (in, not in) 连接操作符( + ) 重复操作符 ( * ) 切片操作符 ( [], [:], [::] )  正负索引的区别在于正索引以序列的开始为起