您的位置:首页 > 理论基础 > 数据结构算法

数据结构之栈和队列

2016-04-21 17:09 302 查看
栈:先进后出

队:先进先出

具体操作接口请看代码

实现我会传到github上欢迎大家下载

https://github.com/pink0453/dataStructure.git

这里注意一点队列的实现我继承了ArrayList这个实现 也就是我的第二篇博客

/**
* 栈
* @author asdc
*
*/
public interface Stack<T> {

/**
* 入栈
* @param e
* @return
*/
T push(T e);

/**
* 出栈
* @return
*/
T pop();

/**
* 返回栈顶部对象
* @return
*/
T peek();

/**
* 判断当前栈是否为空
* @return
*/
boolean empty();

/**
* 返回当前栈的大小
* @return
*/
int size();

}


public interface Queue<T> {

/**
* 入队
* @param e
* @return
*/
T enqueue(T e);

/**
* 出队
* @return
*/
T dequeue();

/**
* 返回队首元素
* @return
*/
T front();

}


/**
* 栈的应用
* @author asdc
*
*/
public class StackApplication {

/**
* 进制转换 将10进制的数转换为任意进制的数
* @param num
* @param base
* @return
*/
public int convert(int num, int base){

String[] bit = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};

Stack<String> temp = new StackImpl<>();
while(num != 0){

temp.push(bit[num % base]);
num = num / base;

}

String newNumStr = "";
while(!temp.empty()){

newNumStr = newNumStr + temp.pop();

}

return Integer.parseInt(newNumStr);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息