栈的实现

本文介绍了一个简单的Java栈实现方法,通过自定义元素类Element和栈类MyStack,实现了基本的栈操作,如压栈(push)、出栈(pop)、获取栈顶元素(get_top)及获取栈中元素数量(get_count)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈的实现:

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("---------------------------");
     }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值