`
shaojiashuai123456
  • 浏览: 262124 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

栈的实现

阅读更多

栈的实现:

import java.io.*;

//栈中的每个节点
class Element
{
	//指向下一个节点
	private Element next;
	//节点中的对象
	private Object  value;
	
	public Element getNext() {
		return next;
	}

	public Object getValue() {
		return value;
	}
	
	public Element()
	{
		this.next=null;
		this.value=null;
	}
	//构造方法
	public Element(Element next,Object value)
	{
		this.next=next;
		this.value=value;
	}
	
}

//栈结构
public class MyStack {
	 //指向最顶的栈节点
	 Element top;
	 //栈中节点个数
	 int     count;
	 
	 //初始化栈
	 public MyStack()
	 {
		 this.top=null;
		 count=0;
	 }
	 //压入
	 public void push(Object value)
	 {
		 Element e=new Element(this.top,value); 
		 this.count++;
		 this.top=e;
	 }
	 //弹出
	 public Object pop()
	 {
		 Element e=this.top;
		 if(this.top!=null)
		 {
			 this.count--;
			 this.top=this.top.getNext();
			 return e.getValue();
		 }
		 else return null;
	 }
	 //查看栈顶节点
	 public Object get_top()
	 {
		 if(this.top!=null)
		 {
			 return this.top.getValue();	 
		 }
		 else
		 {
			 return null;
		 }
	 }
	 //栈中节点数
	 public int get_count()
	 {
		 return this.count;
	 }
	 
     public static void main(String args[])
     {
    	  MyStack s=new MyStack();
    	  Integer i=new Integer("1");
    	  String j=new String("2345abcdej");
    	  s.push(i);
    	  s.push(j);
    	  System.out.println("栈节点数:"+s.get_count());
    	  System.out.println("查看栈顶:"+s.get_top());
    	  System.out.println("弹出栈顶:"+s.pop());
    	  System.out.println("---------------------------");
    	  System.out.println("栈节点数:"+s.get_count());
    	  System.out.println("查看栈顶:"+s.get_top());
    	  System.out.println("弹出栈顶:"+s.pop());
    	  System.out.println("---------------------------");
    	  System.out.println("栈节点数:"+s.get_count());
    	  System.out.println("查看栈顶:"+s.get_top());
    	  System.out.println("弹出栈顶:"+s.pop());
    	  System.out.println("---------------------------");
     }
}

 

分享到:
评论

相关推荐

    两个栈实现一个队列

    标题“两个栈实现一个队列”暗示了我们要用到栈的特性来构建一个具有队列行为的数据结构。通常,栈支持两种基本操作:push(入栈)和pop(出栈),而队列则支持enqueue(入队)和dequeue(出队)。在两个栈模型中,...

    栈和队列的应用实验 利用栈实现中缀表达式与前缀表达式的转换

    2、利用栈实现中缀表达式与前缀表达式的转换。 三、相关内容介绍 标准的表达式如"A+B",在数学上学名叫中缀表达式(Infix Notation),原因是运算符号在两个运算对象的中间。相对应的还有前缀表达式(Prefix ...

    顺序栈实现括号配对

    顺序栈实现括号配对 在计算机科学中,括号配对是指在一个表达式中,各种括号之间的匹配关系。例如,在一个数学表达式中,我们可以使用小括号、中括号和大括号来表示不同的操作优先级。然而,在实际应用中,我们需要...

    数据结构栈实现表达式求值

    ### 数据结构栈实现表达式求值 #### 一、引言 在计算机科学领域,数据结构是存储和组织数据的一种特殊方式,它不仅能够提高算法的效率,还能够简化复杂问题的解决过程。栈是一种非常重要的线性数据结构,遵循后进先...

    栈实现表达式运算

    C语言实现栈实现表达式运算的应用,很好用,有需要的来下载。

    C++实现用栈实现队列的功能

    标题“C++实现用栈实现队列的功能”表明我们将使用C++编程语言,通过创建两个栈来实现队列的主要功能:入队(enqueue)和出队(dequeue)。这种方法的思路是,一个栈用于入队操作,另一个栈用于出队操作,以此来克服...

    利用栈实现逆置单链表

    ### 利用栈实现逆置单链表 在计算机科学中,数据结构是研究的核心之一。其中,链表和栈是非常基础且重要的两种数据结构。本文将详细介绍如何使用栈来实现单链表的逆置。 #### 一、基础知识回顾 在深入探讨之前,...

    c语言数据结构用栈实现四则运算

    在本项目“C语言数据结构用栈实现四则运算”中,开发者利用栈这种数据结构来处理数学中的四则运算,包括加法(+)、减法(-)、乘法(*)和除法(/)。这种方法相比传统的递归或循环方式,通常更加简洁且易于理解。...

    计算器(通过栈实现可以计算多项式).zip

    通过栈实现计算器的基本操作如加减乘除,可以实现多项式和判断括号等功能通过栈实现计算器的基本操作如加减乘除,可以实现多项式和判断括号等功能通过栈实现计算器的基本操作如加减乘除,可以实现多项式和判断括号等...

    用栈实现十进制转换成二进制(c语言)

    在计算机科学中,将十进制数转换为...但这个基本框架提供了一个使用栈实现十进制到二进制转换的基础。对于给定的压缩包文件“DataStack”,可能包含了实现这个功能的完整源代码或者测试数据,你可以进一步查看和学习。

    栈实现表达式求值

    栈实现表达式求值

    栈和队列操作:栈实现、队列实现、双栈实现队列、双队列实现栈、栈实现O(n)求当前栈最大值

    栈实现 队列实现 双栈实现队列 双队列实现栈 栈实现O(n)求当前栈最大值 http://blog.csdn.net/ssuchange/article/details/17398007

    数据结构利用栈实现算术表达式的求值 C语言版

    总的来说,利用栈实现算术表达式的求值是数据结构与算法的经典应用,它展示了如何通过有效的数据结构和逻辑处理复杂问题。在这个过程中,我们不仅练习了对栈的理解,还锻炼了对运算符优先级规则的掌握,以及字符串...

    Linux协议栈实现分析

    Linux协议栈实现分析 Linux协议栈实现分析

    用栈实现了大数相加(C++)

    在提供的压缩包中,"用栈实现的大数相加"这个文件很可能是包含了实现上述过程的C++源代码。通过阅读和运行这个示例,你可以更深入地理解如何在实际编程中应用栈这一数据结构来解决实际问题,同时也可以巩固对C++语言...

    Java用栈实现的计算器

    2. **Java中的栈实现**: Java提供了`java.util.Stack`类来实现栈。它继承自`Vector`类,因此提供了丰富的线程安全的方法,如`push()`, `pop()`, `peek()`等。在这个计算器项目中,我们可以创建一个栈对象来存储...

    使用栈实现计算器或者符合检查功能

    ### 使用栈实现计算器 在实现一个简单的计算器时,我们可以使用两个栈:一个用于存储数值,另一个用于存储运算符。基本步骤如下: 1. **读取输入**:逐个读取输入表达式中的字符,可以是数字、运算符或分隔符。 2....

    C语言-顺序栈实现十进制转换为二进制-八进制-十六进制

    ### C语言顺序栈实现十进制到二进制、八进制、十六进制的转换 #### 一、概述 本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向二进制、八进制以及十六进制的转换。通过分析给出的代码示例,我们将...

    用栈实现迷宫老鼠

    "用栈实现迷宫老鼠"是这个话题的核心,它涉及到如何利用栈这种数据结构来解决老鼠在迷宫中寻找出路的问题。栈是一种后进先出(LIFO)的数据结构,常用于处理递归或回溯类的问题,例如迷宫求解。 首先,我们要理解...

Global site tag (gtag.js) - Google Analytics