package com.tw.dst.sq;
/**
*
* <p>栈算法:栈是一种后进先出的方式</p>
* @author tangw 2010-11-26
*/
public class Stack {
//栈数组
long stackArr[];
//栈的大小
int maxSize;
//栈的顶部
int top;
//初始化一个大小为size的栈
public Stack(int size){
maxSize = size;
stackArr = new long[size];
top = -1;
}
//出栈操作
public long pop(){
return stackArr[top--];
}
//进栈操作
public void push(long value){
stackArr[++top] = value;
}
//判断栈是否为空
public boolean isEmpty(){
return top == -1;
}
//判断栈是否已满
public boolean isFull(){
return top == maxSize-1;
}
//取栈顶元素
public long peek(){
return stackArr[top];
}
public static void main(String[] args) {
Stack stack = new Stack(10);
System.out.println("----插入数据----");
while(!stack.isFull()){
long v = (long) (Math.random()*100);
stack.push(v);
System.out.print(v+" ");
}
System.out.println("----取出数据----");
while(!stack.isEmpty()){
long topValue = stack.pop();
System.out.print(topValue+" ");
}
}
}
分享到:
相关推荐
这些算法的实现和性能比较是算法学习中的重要内容。 4. **递归与分治**:递归是解决问题的一种强大方法,书中通过递归函数展示了如何解决斐波那契数列、汉诺塔等问题。分治策略则是解决复杂问题的一种高效策略,如...
Rivest和Clifford Stein四位专家共同撰写,被广泛视为学习算法的基石。这本书深入浅出地介绍了算法的设计、分析以及实现,涵盖了从排序和搜索到图算法和动态规划等一系列核心概念。 在《算法导论》第二版中,你...
综上所述,《实用算法基础教程——算法和数据结构》这本书内容丰富、覆盖全面,从算法的基础概念到高级技巧,再到具体的数据结构及其应用,为读者提供了一个系统的、全面的学习资源。无论是对于刚接触算法和数据结构...
数据结构是算法的载体,理解不同类型的数据结构(如数组、链表、栈、队列、树、图、哈希表等)以及它们的操作特性是优化算法的关键。在《算法精粹》中,你会看到如何根据问题需求选择合适的数据结构,以及如何高效地...
它可能包含了对严蔚敏书中数据结构和算法的理解或扩展,例如线性表、栈、队列、树等的实现,以及排序和查找算法的应用。 2. **ch1**:第一章通常会介绍数据结构的基本概念,包括数据、数据元素、数据对象、数据结构...
这本书全面涵盖了算法设计与分析的基础知识,是学习算法的重要参考资料。由于文件大小的原因,这里仅提供了一个链接指向百度网盘,方便读者自行下载。 在算法领域,理解并掌握各种算法对于解决复杂问题至关重要。...
总的来说,数据结构与算法的学习是提升编程能力的关键,它们可以帮助我们更好地理解和解决复杂问题。无论是Java还是C++,掌握这些基础知识都能使开发者在面对各种编程挑战时游刃有余。不断实践和深入理解这些概念,...
本书《数据结构与算法分析——C++语言描述(第四版)》是该领域的重要教材,深入探讨了这些主题,并针对C++编程语言进行了详细解释。 在数据结构部分,书中会涵盖基本的数据组织方式,例如数组、链表、栈和队列,...
《C常用算法程序集-徐士良》是一个包含多种C语言实现的经典算法集合,由知名计算机教育专家徐士良编撰。这个压缩包文件中,很可能是为了...通过学习和实践这些算法,可以加深对数据结构和算法的理解,提升编程能力。
这个模块提供了四个核心方法,分别对应栈的四种基本操作。注意在`Pop`和`Peek`方法中,我们对栈空进行了检查,避免了试图操作一个空栈的情况。 在实际应用中,例如编写计算器,栈可以用来处理表达式的计算。例如,...
通过这个项目,我们可以学习和应用数据结构和算法的知识,并且提高编程能力和问题解决能力。 一、课题内容和要求 本课程设计的主要目的是设计一个简单的计算器,能够实现加法、减法、乘法、除法和混合运算。计算器...
在这个"数据结构算法与应用-C,C++(1-9章节)"的PDF教程中,我们可以期待学习到关于这两个编程语言在数据结构和算法方面的深入知识。 首先,第一章通常会介绍数据结构的基本概念,包括数组、链表、栈、队列等基本数据...
《数据结构与算法分析——C++语言描述》是Mark Allen Weiss的经典著作,这本书深入浅出地介绍了数据结构和算法分析的基础知识,对于学习计算机科学的学生和专业人士来说是必不可少的参考书。第四版在前几版的基础上...
- 数据结构:是算法中用于组织和存储数据的方式,例如数组、链表、栈、队列、树、图等。 - 算法的效率:通常使用时间复杂度(如大O表示法)和空间复杂度来衡量算法的性能。 - 递归:一种在定义和解决问题时常见的...
这份压缩包文件包含了该书第1至16章的部分编程题目的Java实现,对于学习算法和提高编程技能来说,是一个宝贵的资源。 首先,我们来逐一探讨这些章节的主要内容: 1. **第四章:分治法** - 分治法是一种将大问题...
### 知识点生成 #### 算法导论-中文版 **知识点一:算法基础知识** ...通过对这些知识点的学习,读者可以对算法有一个全面而深刻的理解,并能够在实际编程中灵活运用这些算法解决各种复杂问题。
这本书对于学习计算机科学和技术,尤其是软件工程专业的学生以及IT行业的从业者来说,具有极高的参考价值。以下是对书中主要内容的详细解读: 一、数据结构基础 数据结构是计算机科学中的核心概念,它研究如何在...
根据提供的文件信息,本文将对《算法笔记-上机...通过学习这些内容,读者可以系统地掌握算法设计与分析的方法论,并能够将其应用于实际编程项目中,解决各种具体问题。希望本篇总结能够为学习者提供一定的参考价值。
本教程将深入探讨四种基本的数据结构:图、树、队列和栈,以及单链表。这些数据结构在软件开发中起着至关重要的作用,它们是算法设计的基础,并在解决复杂问题时提供有效解决方案。 首先,我们来谈谈图。图是由顶点...