`
fantasybei
  • 浏览: 37702 次
  • 性别: Icon_minigender_1
  • 来自: 农村进沪务工人员
社区版块
存档分类
最新评论

stack的java实现

阅读更多
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实现stack

    本节将详细介绍如何使用Java实现Stack以及相关测试案例。 首先,我们可以通过继承java.util.ArrayList或java.util.Vector类来创建自定义的Stack。ArrayList提供了快速随机访问和高效插入删除元素的能力,而Vector是...

    stack java演示小代码

    在Java编程语言中,Stack是一个重要的数据结构,它遵循“后进先出”(LIFO)原则。在本示例中,“stack java演示小代码”指的是一个使用Java编写的程序,该程序展示了如何操作和使用栈来执行各种操作。下面我们将...

    Stack3 java.rar_Stack3 java_palindrome

    标题中的"Stack3 java.rar_Stack3 java_palindrome"表明这是一个关于使用Java编程语言实现堆栈(Stack)数据结构,并且应用在判断回文(Palindrome)字符串上的项目。回文是指正读反读都能读通的字符串,如“level”...

    java sip 协议栈实现客户端和服务

    3. 如何使用Java实现SIP客户端和服务器端。 4. Eclipse开发环境的使用和调试技巧。 5. Ant构建工具的使用。 6. 日志记录和调试技术。 7. 依赖管理和库的引入。 此外,还可以深入了解网络编程、多线程处理、异常处理...

    Java实现DFS算法

    DFS的基本思想是通过递归或栈(Stack)实现。具体过程如下:将起始节点标记为已访问。对于起始节点的每个未访问邻居节点,递归或将其加入栈中,并继续访问它们的未访问邻居节点。当当前节点没有未访问邻居节点时,...

    Java用LinkedList实现的Stack

    栈是先进先出的原则,该类实现了栈的移入移除

    java 栈的实现和应用

    2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,因此具有线程安全的特性。但通常,由于其性能较低,推荐使用`ArrayDeque`。使用`Stack`类的示例如下: ```java ...

    Sip注册 Java实现

    在Java实现中,`SipApplicationDispatcher`类通常用于处理SIP事件,如请求发送、接收响应等。开发者需要实现相应的监听器接口(如`javax.sip.EventListener`)以处理这些事件。 在提供的压缩包文件`Sip_Java`中,...

    java实现内存动态分配

    这些区域在Java内存模型中同样占有重要地位,但在“java实现内存动态分配”的上下文中,主要关注堆和栈的动态分配。 综上所述,Java实现内存动态分配涉及到对堆内存、栈内存的理解,以及对垃圾回收机制的掌握。通过...

    java实现的opc ua 客户端/服务端的简单例子

    这个“java实现的opc ua客户端/服务端的简单例子”是一个很好的起点,对于初学者来说,可以帮助理解 OPC UA 的核心概念和Java实现。 首先,OPC UA 包含了客户端和服务端两部分,客户端用于请求和访问服务器上的数据...

    java数据结构 ArrayList、Stack、Map

    **ArrayList** 是Java集合框架中的一个重要类,位于`java.util`包下,它实现了List接口。ArrayList实际上是一个动态数组,可以容纳任意类型的对象。它的主要特点是可以通过索引来访问和修改元素,索引从0开始。...

    Java数据结构实现之Stack.zip

    本篇将重点讨论Java中栈(Stack)这一重要数据结构的实现。 栈是一种线性数据结构,遵循“后进先出”(LIFO,Last In First Out)的原则。在栈中,最后加入的元素(称为顶元素)最先被移除。栈的操作主要包括两个...

    用 Java 实现堆栈

    Java作为一种广泛使用的编程语言,提供了多种方式来实现堆栈,包括使用数组、链表以及内置的java.util.Stack类。下面我们将详细讨论如何在Java中实现堆栈,并探讨其相关知识。 首先,我们可以通过自定义一个类来...

    stack实现括号匹配

    接下来,我们将详细讨论如何用Java实现这个过程: 1. 创建一个`Stack`类:可以使用Java内置的`java.util.Stack`类,或者自定义一个栈类,例如`MyArrayStack.java`。自定义栈类时,可以使用数组或链表作为底层数据...

    java中慎用继承 以及java中的stack的败笔

    本文将深入讨论Java中继承的优缺点,以及在特定情况下如何避免使用继承,同时探讨`java.util.Stack`类的设计问题。 继承是面向对象编程中的一个核心概念,主要目的有三个:代码重用、规范制定和实现多态。通过继承...

    JAVA 模拟 STACK

    本示例程序旨在通过显式的方法,也就是不依赖Java内置的`java.util.Stack`类,来实现一个自定义的栈。下面我们将深入探讨这个“JAVA 模拟 STACK”作业的相关知识点。 首先,栈的基本操作包括: 1. **压栈(Push)**:...

    VoIP 使用SIP 和 Java实现

    通过阅读这份文档,你可以深入理解VoIP和SIP的原理,以及如何利用Java实现它们。在实践中,结合JAIN SIP API,你可以创建自己的VoIP解决方案,支持网络通话、视频会议等功能,适用于企业通信、远程协作等多种场景。

    java实现数据结构

    Java的`Stack`类继承自`Vector`,提供了`push()`用于压栈,`pop()`用于弹栈,`peek()`查看栈顶元素但不移除,以及`empty()`检查栈是否为空。 队列是一种先进先出(FIFO)的数据结构,常用在任务调度或消息传递中。...

    Android下各语言加callStack示例

    首先,让我们来看看Java语言的call stack。在Java中,我们可以利用`Thread.currentThread().getStackTrace()`方法来获取当前线程的调用堆栈信息。这个方法返回一个`StackTraceElement`数组,包含了每个栈帧的信息,...

Global site tag (gtag.js) - Google Analytics