进制转换:
/**栈的应用
* 进制转换
* @param number
* @param Binary
* @return
*/
public static mystack<Character> BinaryConversion(int number,int Binary){
mystack<Character> arr=new mystack<>();
char [] dis={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while (number>0)
{
arr.push(dis[number%Binary]);
number/=Binary;
}
return arr;
}
括号匹配问题:
/**栈的应用
* 括号匹配
* 这里的精妙之处在于每次不仅比较而且还删除了栈顶元素
* @param arr
* @return
*/
public static boolean Brackets(char [] arr){
Stack<Character> arrs=new Stack<>();
for (int i=0;i<arr.length;i++)
{
switch (arr[i])
{
case '(': case '[': case '{':arrs.push(arr[i]);break;
case ')':if((arrs.empty()||('('!=arrs.pop())))return false;break;
case ']':if((arrs.empty()||('['!=arrs.pop())))return false;break;
case '}':if((arrs.empty()||('{'!=arrs.pop())))return false;break;
default:break;
}
}
return arrs.empty();
}