java使用链栈实现数制转换
java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html
将前面java实现链栈的代码稍作修改:
package linkedstack;
public class LinkStack {
private Element base;
private Element top;
class Element
{
public Object data;
public Element next;
}
/**
* 初始化栈
* */
public void initStack()
{
top = new Element();
base = new Element();
top.data=null;
top.next=base;
base.data=null;
base.next=null;
}
/**
* 入栈
* */
public void push(Object o)
{
Element e = new Element();
e.data = o;
if(top.next==base)//第一次入栈操作
{
e.next=base;
top.next=e;
}else
{
e.next=top.next;
top.next=e;
}
}
/**
* 出栈
* */
public Object pop()
{
Object o = null;
if(top.next==base)
{
System.out.println("栈中没有元素!");
return o;
}else
{
o = top.next.data;
//System.out.println("出栈操作"+o);
top.next=top.next.next;
}
return o;
}
/**
* 判断栈是否为空
* */
public Boolean isEmpty()
{
if(top.next==base)
{
return true;
}
return false;
}
/**
* 打印栈
* */
public void print()
{
System.out.print("打印栈:");
Element temp =top;
while(temp.next!=base)
{
System.out.print(temp.next.data+"\t");
temp =temp.next;
}
System.out.println();
}
}
java实现数制转换的类的代码:
package stackapplication;
import linkedstack.LinkStack;
public class Conversion {
public static void main(String[] args) {
LinkStack lStack = new LinkStack();
lStack.initStack();
int N = 100;//原始十进制数
int X = 2;//要转化成X进制数
while(N!=0)
{
lStack.push(N%X);
N=N/X;
}
while(!lStack.isEmpty())
{
System.out.print(lStack.pop());
}
}
}
java使用链栈实现数制转换的更多相关文章
- java使用链栈实现迷宫求解
java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html java实现链栈的代码: package stackapplicatio ...
- java与数据结构(6)---java实现链栈
栈之链式存储结构链栈 链栈 栈的链式存储结构成为链栈.链栈是没有头结点,头结点就是栈顶指针top. 代码结构 package list; public interface Stackable;公共接口 ...
- 数据结构——Java实现链栈
一.分析 栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表. 链栈是指采用链式存储结构实现的 ...
- java实现链栈
package linkstack; /** * Created by Administrator on 2019/4/18. */ public class LinkStack { private ...
- 顺序栈,链栈,队列java实现
顺序栈 /** * 顺序栈 * */ public class SqStack { //栈的大小 private int maxSize; //栈顶指针 private int top; privat ...
- java的数制转换(详解,全!)
对于进制转换,c/c++要用到辗转相除,不仅浪费时间,还造成代码量繁多,而任意之间的进制转换还需要以十进制为跳板, 先将其他进制的数字转换为十进制,再将十进制转换为其他进制,而java中自带进制转换的 ...
- Java堆、栈和常量池以及相关String的详细讲解(经典中的经典) (转)
原文链接 : http://www.cnblogs.com/xiohao/p/4296088.html 一:在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register). 这是最快的 ...
- Java线程:线程状态的转换
Java线程:线程状态的转换 一.线程状态 线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞.用一个图来描述如下: 1.新状态:线程对象已 ...
- Java堆、栈和常量池
摘录自 http://www.cnblogs.com/xiohao/p/4296088.html 1. 栈(stack)与堆(heap)都是Java用来在RAM中存放数据的地方.与C++不同,Java ...
随机推荐
- PHP视频教程 字符串处理函数(一)
字符串处理函数: PHP处理字符串的空格: strlen() 字符串长度 trim()对字符串左右空格删除 ltrim()对字符串左边空格删除 rtrim()对字符串右侧空格删除 PHP对字符串大 ...
- RE:从零开始的AGC被虐(到)生活(不能自理)
RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious L ...
- uva 6957 Hyacinth bfs
Hyacinth Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem/viewPro ...
- memcached添加日志输出
引子:qa的memcached总是隔一段时间挂掉,导致qa进不去.决定查一下原因,于是添加日志输出,等下次出错便于查阅.定位问题. memcache默认没有日志输出.如果想把memecache服务日志 ...
- Shell基础学习(一) Shell简介
Shell是什么? Shell是C语言编写的一种程序,用于用户与linux操作系统交互:Shell既是命令语言,又是程序设计语言. Shell脚本是什么? Shell脚本是用Shell编写的脚本程序. ...
- Vue2.0实现双向绑定的原理
一.几种实现双向绑定的做法 目前几种主流的mvc(vm)框架都实现了单向数据绑定,而我所理解的双向数据绑定无非就是在单向绑定的基础上给可输入元素(input.textare等)添加了change(in ...
- WebService如何抛出干净的异常
转载:http://www.cnblogs.com/ahdung/p/3953431.html 说明:[干净]指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message ...
- easyui datagrid如何获取到每行的文本框
在return '<input type="text" name="txtCount" class="inputvalue"/> ...
- 一次delete速度异常慢的处理过程
InnoDB delete from xxx速度暴慢原因 博客分类: database MySQLPythonMobile多线程SQL step1,一个简单的联系人表 CREATE TABLE `c ...
- [gevent源代码分析] 深度分析gevent执行流程
一直对gevent执行流程比較模糊,近期看源代码略有所得.不敢独享.故分享之. gevent是一个高性能网络库,底层是libevent,1.0版本号之后是libev.核心是greenlet.geven ...