• 栈(Stack)是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行。通常称允许插入、删除操作的这一端为栈顶(Top),不允许操作的一端称为栈底(Bottom)。当表中没有元素时称为空栈。
  • 假设栈S=(a0,a1,a2,a3,…an-1),则a0称为栈底元素,an-1为栈顶元素,标识栈顶位置的指针称为栈顶指针。栈中元素按a0, a1,a2,a3,… an-1的次序进栈,退栈的第一个元素应为栈顶元素。换句话说,栈的修改是按后进先出的原则进行的。因此,栈称为后进先出表(LIFO)。
  • 习惯上将每次删除(也称为退栈)操作又称为出栈或弹出(POP)操作。删除的元素总是当前栈中“最新”的元素(栈顶元素)。
  • 每次插入(称为进栈)操作称为入栈或压入(PUSH)操作,入栈的元素总是当前栈中“最新”的元素。
  • 在空栈中最先插入的元素总被放在栈的底部,只有所有元素被弹出之后它才能被删除。

出入栈示例


1.栈的简单应用:数制转换问题(将十进制数N转换为r进制的数)
将十进制数N转换为r进制的数
Change.java


import java.util.Scanner;
import java.util.Stack;public class Change {Stack<String> stack = new Stack<String>();//num是想要转换的数字,rank是想要转换的进制public int getResult(int num,int rank) {//获取整数商return num/rank;}public int getRemain(int num,int rank) {//获取余数return num%rank;}public void run(int num,int rank) {int result=getResult(num, rank);//当整除是将余数添加到栈中,退出递归进程if(result==0) {stack.push(getRemain(num, rank)+" ");}else {stack.push(getRemain(num, rank)+" ");run(result, rank);//进行递归}}public static void main(String[] args) {Change change=new Change();System.out.println("请输入一个十进制数字:");Scanner sca = new Scanner(System.in);int num = sca.nextInt();System.out.println("请输入想要转换为几进制的数字:");int rank = sca.nextInt();change.run(num, rank);String Result = "";while(!change.stack.isEmpty()) {Result += change.stack.pop(); }System.out.println(Result);}
}

java利用栈进行进制转换相关推荐

  1. 利用数组进行进制转换

    进制转换 作业要求 作业成品 期间出现的问题 scanf result= a = b-1 for C语言小白,在CSDN记录CG平台上的作业和心得 作业要求 [问题描述]十进制数转换为R进制数.R可以 ...

  2. java 60进制运算_JAVA利用位移进行进制转换

    class TransDemo { public static void main(String[] args) { int a = 8152936; String res1 = toBin(a); ...

  3. 使用 Shell 运算进行进制转换 16进制转10进制

    使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数 ...

  4. 小数点怎么进行进制转换?

    上一篇博文什么是进制?各进制间如何转换?解答了进制概念以及整数位的各进制间的转换.而对于小数点的进制转换是如何的呢?这里来看如何进行小数点的进制转换. 带小数点的二进制转十进制 例如:00010100 ...

  5. 【python】用python进行进制转换(10进制、2进制、16进制)

    进制转换 ① 16进制转10进制 ② 16进制转2进制 ③ 10进制转16进制 ④ 10进制转2进制 ⑤ 2进制转16进制 ⑥ 2进制转10进制 博客由来写在前面:由于计组老师要求我们课后查一下进制转 ...

  6. 使用JavaScript进行进制转换将字符串转换为十进制

    1.将数字转换成十进制 parseInt(res,x); 将任意进制字符串转换为十进制,x为如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制: var res=10001; pa ...

  7. 用python进行进制转换(二十六进制)

  8. 怎么用html做进制转换器,怎样用电脑自带计算器进行进制之间的转换

    电脑自带的计算器怎么使用16进制转换等功能 电脑自带的计算器怎么使用16进制转换等功能打开电脑的计算器,上中的位置有个查看,点下去选择科学型,计算器界面就变了.再选择十六进制,输入要转换的十六进制数据 ...

  9. python如何进行进制转换

    python如何进行进制转换 1.十进制转二进制(bin) 首先我们看看怎么把一个十进制转化成二进制,我们可以使用python的内置方法 bin 输出 python 中二进制以ob开头 2.十进制转八 ...

最新文章

  1. linux 新用户 界面登录,如何在Linux系统登录界面加入个性化提示信息
  2. TF:利用TF的train.Saver将训练好的W、b模型文件保存+新建载入刚训练好模型(用于以后预测新的数据)
  3. EMVTag系列9《卡片管理数据》
  4. mysql dsn 连接_各种数据库的连接串(总结DSN的使用方法)
  5. 代码演示:获取锁时被中断
  6. java连本地mysql注意事项_java数据库连接及注意事项
  7. Java Portlets 介绍
  8. 小程序如何避免多次点击,重复触发事件
  9. EE214 Lecture 14 Differential pair部分公式推导
  10. 跨界打劫!中医保健店用一招免费洗车,快速引流进店,月赚20万
  11. 给网站加上 开心网 转帖功能
  12. Markdown超链接本地文件
  13. windows防火墙是干什么的_请教个人防火墙是做什么用的,
  14. 阿里巴巴离职DBA 35岁总结的职业生涯-职业规划
  15. 折纸问题(规律题)(map的使用)
  16. java无法安装路径无效_Java环境 jdk无法切换版本,修改path路径也无效
  17. 战地1 服务器 网页,战地1全服务器搜索方法一览
  18. MySQL 数据库基础(1)
  19. 加强英语教师计算机能力的培训,关于国内计算机企业英语培训的思考
  20. Kubernetes控制平面组件:Kubelet

热门文章

  1. SQL分析阿里云淘宝电商数据
  2. No (visible) service implements the interface org.qiwen.serv
  3. 北京内推 | ​微软亚洲研究院DKI组招聘数学规划方向实习生
  4. 使用EJS脚本实现花生壳动态域名更新服务(一)
  5. 一学就会的无代码RPA,让“高效”成为你的竞争优势
  6. 如何使用 RenderScript实现抖音的黑金效果
  7. 收到华为官网鸿蒙的消息,IT之家用户反馈现已收到华为鸿蒙 HarmonyOS 2.0 推送
  8. centos python3 gcc 以及 glibc版本问题
  9. linux 自定义目录,Linux系统中使用脚本指自定义文件夹图标(gio命令)
  10. 云渲染是什么?3Dmax本地渲染好还是云渲染好?