/**
* Stack.java
* 线性表之栈
* 栈的特点:
* 先进后出
* 即, 从头部加入(push)一个新数据
* 从头部取出(pop)一个数据
*/
package line;
/**
* @author sunxboy
* 9:59:52 AM May 22, 2007
*/
public class Stack {
int[] data;
int maxSize;
int top;
public Stack(int maxSize) {
this.maxSize = maxSize;
data = new int[maxSize];
top = -1;
}
/**
* 依次加入数据
* @param data 要加入的数据通信
* @return 添加是否成功
*/
public boolean push(int data) {
if(top+1== maxSize) {
System.out.println("栈已满!");
return false;
}
this.data[++top] = data;
return true;
}
/**
* 从栈中取出数据
* @return 取出的数据
*/
public int pop() throws Exception{
if(top==-1) {
throw new Exception("栈已空!");
}
return this.data[top--];
}
public static void main(String[] args) throws Exception {
Stack stack=new Stack(1000);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
while(stack.top>=0)
{
System.out.println(stack.pop());
}
}
}
分享到:
相关推荐
C++实现线性表、堆栈和队列时,可以自定义结构体或类来表示数据节点,并提供相应的成员函数完成操作。例如,对于线性表,可以创建一个包含数据和指向下一个元素的指针的结构体;对于堆栈,可以包含一个大小固定的...
线性表、堆栈和队列是计算机科学的基础,理解它们的概念、操作和实现方式对于编程和算法设计至关重要。堆栈作为线性表的一种特例,由于其“后进先出”的特性,在很多实际问题中有着广泛应用。顺序存储和链式存储是两...
本课程主要涵盖了一系列核心的数据结构和算法,包括线性表、堆栈、队列、数组、字符串、树、图、递归、排序、查找、内存管理和文件等内容。下面将对线性表、堆栈和队列进行详细解释。 线性表是一种基本的数据结构,...
在本课程作业中,我们重点关注了几种基本的数据结构:单链表、双链表、线性表和堆栈,同时也涉及到二叉树。这些概念在解决实际问题,特别是优化算法效率时起着关键作用。 首先,单链表是一种线性数据结构,其中每个...
顺序存储的线性表是最简单的数据结构之一,它将元素存储在一个连续的内存空间中。例如,给定的代码段展示了如何在顺序存储的线性表中进行插入和删除操作。`sq_insert`函数用于在线性表中插入一个元素,它首先检查...
线性表是数据结构中最基础且重要的概念之一,它是由n(n≥0)个相同类型元素构成的有限序列。在线性表中,每个元素都有一个前驱元素和后继元素,除了第一个元素没有前驱,最后一个元素没有后继。在计算机科学中,...
堆栈实现了一种后进先出的语义(LIFO)。可以使用数组或者是链表来实现它。对于堆栈中的数据的所有操作都是在栈的顶部完成的,只可以查看栈顶部的数据,只能够向栈的顶部压入数据,也只能从栈的顶部弹出数据。 队列...
线性表是一种常用的数据结构,在计算机内存中通常采用顺序存储或链式存储来实现。 1.设计一个线性表基类和两个派生类,这两个派生类分别以顺序存储(数组)和链式存储(单链表)的方式实现...2.利用线性表类实现堆栈类
线性表的典型应用包括线性表自身、堆栈、队列、字符串和数组等。堆栈是后进先出(LIFO)的数据结构,队列是先进先出(FIFO)的数据结构,字符串是一系列字符的集合,而数组则是一种元素类型相同的有序集合。线性结构...
1. **数组实现的线性表**:数组是一种静态存储方式,它的优点是随机访问速度快,但插入和删除操作效率较低,因为可能需要移动大量元素。 2. **链表实现的线性表**:链表使用指针连接元素,每个元素称为节点,包含...
- 线性表作为基础数据结构,广泛应用于各种算法和数据结构中,如堆栈、队列、哈希表等。 - 在实际编程中,线性表常用于存储和处理一组有序或无序的数据。 总的来说,"线性表源代码(C/C++)"是一个学习和理解数据...
堆栈是一种特殊的线性表,只允许在表的一端(栈顶)进行插入和删除操作。栈顶元素是最后加入的,也是最早被移除的,而栈底元素则是最先加入的,但只有当所有栈顶元素都被移除后才能访问到。堆栈通常用数组或链表来...
在本主题中,我们将深入探讨线性表的两种主要存储结构:顺序存储结构和链式存储结构,以及在这两种结构上实现的基本操作。同时,我们还会涉及栈这种特殊类型的线性表及其顺序和链式存储结构。 一、线性表的顺序存储...
VHDL作为一种标准化硬件描述语言,是实现FPGA设计的重要工具之一。本文将详细介绍如何利用VHDL在FPGA上实现一个简单的堆栈结构,并对其关键设计思路进行深入解析。 #### 二、堆栈基础知识 堆栈(Stack)是一种特殊...
堆栈遵循“后进先出”(LIFO)原则,常用于实现函数调用、表达式求值等场景。队列则遵循“先进先出”(FIFO)原则,常见于任务调度、打印队列等应用。堆栈和队列都是在实际编程中非常重要的数据结构,理解它们的原理...
- 堆栈是一种仅允许在表的一端进行插入和删除操作的线性表,具有后进先出(LIFO)特性。 - 堆栈的基本操作包括push(压栈)、pop(出栈)、peek(查看栈顶元素)、isEmpty(判断栈是否为空)等。 2. 单链表节点的...
栈和队列在计算机系统中有着广泛的应用,如函数调用堆栈、浏览器的前进/后退功能、打印机的任务队列等。 在学习数据结构时,理解和熟练掌握线性表、栈和队列的逻辑结构和存储结构,以及它们的基本操作是非常重要的...
7. **课程内容**:"数据结构第三章课件,特殊线性表--栈、队列和串"可能会涵盖这些概念的定义、操作、特性、实现方式、以及相关的算法和应用。电子教案可能包括PPT演示文稿、讲解笔记、习题解答等内容,帮助学生深入...