import java.lang.Exception;
class MyStack
{
private static final int MAX_SIZE = 5;
private int[] t = new int[MAX_SIZE];
private int top = -1;
public void push(int x) throws Exception{
if(isFull()){
throw new Exception("栈已满");
}else{
t[++top] = x;
}
}
public int pop() throws Exception{
if(isEmpty()){
throw new Exception("栈为空");
}else{
return t[top--];
}
}
public boolean isFull(){
return top == MAX_SIZE - 1;
}
public boolean isEmpty(){
return top == -1;
}
public void printStack(){
for(int i = 0; i <= top; i++){
System.out.print(t[i]);
}
}
}
public class Temp
{
public static void main(String[] args) throws Exception{
MyStack ms = new MyStack();
ms.push(1);
ms.push(2);
ms.push(3);
ms.push(4);
ms.push(5);
System.out.println(ms.pop());
//ms.push(6);
ms.printStack();
}
}
顺序栈
class Node
{
public int data;
public Node next;
public Node(int data){
this.data = data;
}
}
class LinkedStack
{
private Node head;
public void push(int a){
Node node = new Node(a);
if(head == null){
head = node;
}else{
node.next = head;
head = node;
}
}
public int pop() throws Exception{
if(isEmpty()){
throw new Exception("栈为空");
}else{
Node temp = head;
head = head.next;
return temp.data;
}
}
public boolean isEmpty(){
return head == null;
}
}
public class TestLinkedStack
{
public static void main(String[] args) throws Exception{
LinkedStack ls = new LinkedStack();
ls.push(3);
ls.push(4);
System.out.println(ls.pop());
System.out.println(ls.pop());
//System.out.println(ls.pop());
}
}
链栈
分享到:
相关推荐
用java实现的栈Stack类,不继承任何集合类,用对象数组实现
本节将详细介绍如何使用Java实现Stack以及相关测试案例。 首先,我们可以通过继承java.util.ArrayList或java.util.Vector类来创建自定义的Stack。ArrayList提供了快速随机访问和高效插入删除元素的能力,而Vector是...
在Java编程语言中,Stack是一个重要的数据结构,它遵循“后进先出”(LIFO)原则。在本示例中,“stack java演示小代码”指的是一个使用Java编写的程序,该程序展示了如何操作和使用栈来执行各种操作。下面我们将...
标题中的"Stack3 java.rar_Stack3 java_palindrome"表明这是一个关于使用Java编程语言实现堆栈(Stack)数据结构,并且应用在判断回文(Palindrome)字符串上的项目。回文是指正读反读都能读通的字符串,如“level”...
3. 如何使用Java实现SIP客户端和服务器端。 4. Eclipse开发环境的使用和调试技巧。 5. Ant构建工具的使用。 6. 日志记录和调试技术。 7. 依赖管理和库的引入。 此外,还可以深入了解网络编程、多线程处理、异常处理...
DFS的基本思想是通过递归或栈(Stack)实现。具体过程如下:将起始节点标记为已访问。对于起始节点的每个未访问邻居节点,递归或将其加入栈中,并继续访问它们的未访问邻居节点。当当前节点没有未访问邻居节点时,...
栈是先进先出的原则,该类实现了栈的移入移除
2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...
在Java实现中,`SipApplicationDispatcher`类通常用于处理SIP事件,如请求发送、接收响应等。开发者需要实现相应的监听器接口(如`javax.sip.EventListener`)以处理这些事件。 在提供的压缩包文件`Sip_Java`中,...
这些区域在Java内存模型中同样占有重要地位,但在“java实现内存动态分配”的上下文中,主要关注堆和栈的动态分配。 综上所述,Java实现内存动态分配涉及到对堆内存、栈内存的理解,以及对垃圾回收机制的掌握。通过...
这个“java实现的opc ua客户端/服务端的简单例子”是一个很好的起点,对于初学者来说,可以帮助理解 OPC UA 的核心概念和Java实现。 首先,OPC UA 包含了客户端和服务端两部分,客户端用于请求和访问服务器上的数据...
**ArrayList** 是Java集合框架中的一个重要类,位于`java.util`包下,它实现了List接口。ArrayList实际上是一个动态数组,可以容纳任意类型的对象。它的主要特点是可以通过索引来访问和修改元素,索引从0开始。...
本篇将重点讨论Java中栈(Stack)这一重要数据结构的实现。 栈是一种线性数据结构,遵循“后进先出”(LIFO,Last In First Out)的原则。在栈中,最后加入的元素(称为顶元素)最先被移除。栈的操作主要包括两个...
Java作为一种广泛使用的编程语言,提供了多种方式来实现堆栈,包括使用数组、链表以及内置的java.util.Stack类。下面我们将详细讨论如何在Java中实现堆栈,并探讨其相关知识。 首先,我们可以通过自定义一个类来...
接下来,我们将详细讨论如何用Java实现这个过程: 1. 创建一个`Stack`类:可以使用Java内置的`java.util.Stack`类,或者自定义一个栈类,例如`MyArrayStack.java`。自定义栈类时,可以使用数组或链表作为底层数据...
本文将深入讨论Java中继承的优缺点,以及在特定情况下如何避免使用继承,同时探讨`java.util.Stack`类的设计问题。 继承是面向对象编程中的一个核心概念,主要目的有三个:代码重用、规范制定和实现多态。通过继承...
本示例程序旨在通过显式的方法,也就是不依赖Java内置的`java.util.Stack`类,来实现一个自定义的栈。下面我们将深入探讨这个“JAVA 模拟 STACK”作业的相关知识点。 首先,栈的基本操作包括: 1. **压栈(Push)**:...
通过阅读这份文档,你可以深入理解VoIP和SIP的原理,以及如何利用Java实现它们。在实践中,结合JAIN SIP API,你可以创建自己的VoIP解决方案,支持网络通话、视频会议等功能,适用于企业通信、远程协作等多种场景。
Java的`Stack`类继承自`Vector`,提供了`push()`用于压栈,`pop()`用于弹栈,`peek()`查看栈顶元素但不移除,以及`empty()`检查栈是否为空。 队列是一种先进先出(FIFO)的数据结构,常用在任务调度或消息传递中。...
首先,让我们来看看Java语言的call stack。在Java中,我们可以利用`Thread.currentThread().getStackTrace()`方法来获取当前线程的调用堆栈信息。这个方法返回一个`StackTraceElement`数组,包含了每个栈帧的信息,...