1. 栈

数据结构与算法分析java——栈和队列

1.1 分类

  顺序栈:顺序线性表实现

  链式栈:单向链表存储堆栈

 

1.2栈的应用

1)数制转换

数据结构与算法分析java——栈和队列

import java.util.Scanner;
 
import java.util.Stack;
 
public class Tran{
 
    public static void main(String arg[]){
 
     Scanner y=new Scanner(System.in);
 
     System.out.println("请输入十进制数");
 
     int b=y.nextInt();
 
     Tran j=new  Tran();
 
     j.ErJinZhi(b);
 
     j.BaJinZhi(b);
 
     j.ShiLiuJinZhi(b);
 
    }
 
  //转化成二进制
 
  void ErJinZhi(int a){
 
    Stack<Integer> s=new Stack<Integer>();
 
    String str="";
 
    while(a>0)
 
    {
 
     s.push(a%2);
 
     a=a/2;
 
    }
 
    while(!s.isEmpty()){
 
     str=str+s.pop();
 
    }
 
  System.out.println("二进制是"+str);
 
  } 
 
  //转化成八进制
 
  void BaJinZhi(int a){
 
  Stack<Integer> s=new Stack<Integer>();
 
    String str="";
 
    while(a>0)
 
    {
 
     s.push(a%8);
 
     a=a/8;
 
    }
 
    while(!s.isEmpty()){
 
     str=str+s.pop();
 
    }
 
   System.out.println("八进制是"+str);
 
  }
 
  //转化成十六进制
 
  void ShiLiuJinZhi(int a){
 
   int c=0;
 
   String str="";
 
   Stack<Character> s=new Stack<Character>();
 
   while(a>0)
 
   {
 
    c=a%16;
 
    switch(c){
 
    case(10):s.push('A');break;
 
    case(11):s.push('B');break;
 
    case(12):s.push('C');break;
 
    case(13):s.push('D');break;
 
    case(14):s.push('E');break;
 
    case(15):s.push('F');break;
 
    default:s.push((char)(a%16+48));
 
    }
 
    a=a/16;
 
   }
 
   while(!s.isEmpty()){
 
    str=str+s.pop();
 
   }
 
   System.out.println("十六进制是"+str);
 
  }
 
}
View Code

相关文章:

  • 2021-07-30
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2018-07-06
  • 2021-07-03
  • 2022-12-23
猜你喜欢
  • 2021-05-25
  • 2022-01-08
  • 2021-09-12
  • 2019-09-19
  • 2021-07-26
  • 2022-03-02
  • 2021-11-01
相关资源
相似解决方案