⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usestack.java

📁 有大量的java的实例
💻 JAVA
字号:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class UseStack extends Applet implements ActionListener
{
	Stack MyStack;
	Label prompt = new Label("新数据:");
	Button pushBtn = new Button("压栈");
	Button popBtn = new Button("弹栈");
	TextField input = new TextField(5);
	int[] DrawStack = new int[10];		//记录堆栈中数据
	int[] PoppedOut = new int[20];		//记录被弹出的数据
	int StackCnt = 0;		//记录模拟堆栈的数组中的数据个数
	int PopCnt = 0;				//记录弹出数据个数
	String msg = "";

	public void init()
	{
		MyStack = new Stack();
		add(prompt);
		add(input);
		add(pushBtn);
		add(popBtn);
		pushBtn.addActionListener(this);
		popBtn.addActionListener(this);
	}
	public void paint(Graphics g)
	{
		for(int i=0;i<StackCnt;i++)//模拟显示堆栈内部的数据排列情况
		{
		 g.drawRect(50,200-i*20,80,20);
	         g.drawString(Integer.toString(DrawStack[i]),80,215-i*20);
		}
		for(int i=0;i<PopCnt;i++)	//显示被弹出的数据
		g.drawString(Integer.toString(PoppedOut[i]),200+i*20,100);
		g.drawString("堆栈",70,236);
		g.drawString("栈底",135,225);
		g.drawString("栈顶",160,225-StackCnt*20);
		g.drawString(msg,200,140);
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getActionCommand() == "压栈")		//压栈操作
		{
			if(StackCnt<10)
			{
				MyStack.push(new Integer(input.getText()));
				DrawStack[StackCnt++] = Integer.parseInt(input.getText());
				input.setText("");
			}
			else
				msg = "输入数据过多,请先弹栈!";
		}
		else if(e.getActionCommand() == "弹栈")		//弹栈操作
		{
			if(!MyStack.empty())
			{
				StackCnt--;
				PoppedOut[PopCnt++] = ((Integer)(MyStack.pop())).intValue();
			} 
			else
				msg = "堆栈已空,不能再弹栈!";
		}
		repaint();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -