码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-04-21 18:31:16      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

1. 栈

技术分享

1.1 分类

  顺序栈:顺序线性表实现

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

 

1.2栈的应用

1)数制转换

技术分享

技术分享
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

 

 

2)表达式的转换

中缀表达式: a+b*c ;  前缀表达式: +a*bc;  后缀表达式: acb*+

技术分享

 

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

标签:

原文地址:http://www.cnblogs.com/zxqstrong/p/5417804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!