关于栈的应用之数值转化:可以看我博客里《栈与队列及其应用C语言实现(数据结构复习最全笔记)》中关于栈的数制转换部分的讲解,也可以看一道题:《十进制转十六进制 (练习栈方法)》
两个博客的链接:
https://blog.csdn.net/weixin_42110638/article/details/83106209
https://blog.csdn.net/weixin_42110638/article/details/83030406
package java实现栈; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Stack stack = new Stack(32); Scanner scanner = new Scanner(System.in); System.out.println("请输入一个正整数:"); int n = scanner.nextInt(); //测试栈 stack.push(n); System.out.println("输出"+stack.getTop()); System.out.println(stack.isEmpty()); stack.pop(); System.out.println(stack.isEmpty()); //求n的二进制数 while(n>0) { stack.push(n%2); n /= 2; } System.out.println("---------"); while(!stack.isEmpty()) { System.out.print(stack.pop()); } scanner.close(); } }package java实现栈; public class Stack { public Object []array; public int length; public int top; public Stack(int length) { this.length = length; array = new Object[length]; top = -1;//初始值top为-1,此时栈空 } public boolean isEmpty() { if(top == -1) return true; else return false; } public void push(Object obj) { if(top != length) { array[top+1]=obj; top++; } else return; } public Object pop() { Object e = null; if(top > -1) { e = array[top]; array[top] = null; top--; } return e; } public Object getTop() { Object e = null; if(top > -1) { e = array[top]; } return e; } }