Simple base conversion implementation use java
2012-11-15 11:00
399 查看
The stack interface defination:
A sequence stack implementaion:
The conversion implementation:
package test.baseconversion; public interface IStack<T> { public abstract void push(T value); public abstract T pop(); public abstract T top(); public abstract boolean isEmpty(); public abstract boolean isFull(); }
A sequence stack implementaion:
package test.baseconversion; public class SeqStack<T> implements IStack<T> { private int maxSize; private T[] stackArray; private int top; @SuppressWarnings("unchecked") public SeqStack(int size){ maxSize = size; stackArray = (T[])new Object[maxSize]; top = -1; } /* (non-Javadoc) * @see test.baseconversion.IStack#push(T) */ @Override public void push(T value){ assert(!isFull()); stackArray[++top] = value; } /* (non-Javadoc) * @see test.baseconversion.IStack#pop() */ @Override public T pop(){ assert(!isEmpty()); return stackArray[top--]; } /* (non-Javadoc) * @see test.baseconversion.IStack#top() */ @Override public T top(){ return stackArray[top]; } /* (non-Javadoc) * @see test.baseconversion.IStack#isEmpty() */ @Override public boolean isEmpty(){ return (top == -1); } /* (non-Javadoc) * @see test.baseconversion.IStack#isFull() */ @Override public boolean isFull(){ return (top == maxSize - 1); } }
The conversion implementation:
package test.baseconversion; public class BaseConversion { public String recursiveConversion(int number, int base){ String result = ""; if(number < base){ result = new String("" + number); } else{ result = recursiveConversion(number/base, base) + new String("" + number % base); } return result; } public String conversion(int number, int base){ String result = ""; SeqStack<Integer> s = new SeqStack<Integer>(20); while(number > 0){ s.push(number % base); number = number / base; } while(!s.isEmpty()){ result += s.pop(); } return result; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String result; BaseConversion baseconversion = new BaseConversion(); result = baseconversion.recursiveConversion(10, 2); System.out.println("recursive result is : " + result); result = baseconversion.conversion(10, 2); System.out.println("non recursive result is : " + result); } }
相关文章推荐
- UVa 10473 - Simple Base Conversion
- POJ 1220 NUMBER BASE CONVERSION JAVA .
- SimpleDateFormat in Java is not Thread-Safe Use Carefully
- Android(java)学习笔记137:Android中SimpleAdapter,ArrayAdapter和BaseAdapter常见的适配器
- JAVA Some Simple Class And Method Use.
- UVa 10473 - Simple Base Conversion
- UVa 10473 Simple Base Conversion (两句话实现进制转换)
- error C2663: 'ATL::CSimpleStringT<BaseType>::GetBuffer' : 2 overloads have no legal conversion for
- UVA10473 Simple Base Conversion【进制转换】
- 翻译:java中怎样使用树结构(How to Use Trees)
- java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create()
- Exception in thread “main” java.lang.NoClassDefFoundError: com/google/common/base/Preconditions
- android:java_中常用时间类:date,_simpledateformat,_calendar
- 【Union Find】JAVA implementation
- MAC电脑怎么解决?错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099;
- IDEA 2017 use JAVA_HOME(not defined yet)
- java.net.BindException: bind failed: EADDRINUSE (Address already in use)
- A Simple But Complete Implementation of Binary Search Tree
- Android中极简的js与java的交互库-SimpleJavaJsBridge
- java.lang.ClassNotFoundException: Didn't find class "com.kge.love.base.BaseApplication" on path: Dex