LALA |
|
|||
日歷
導航留言簿(1)隨筆分類(31)
文章分類(4)收藏夾(21)搜索積分與排名
最新隨筆
最新評論
閱讀排行榜 |
有兩個相同的棧,一個里面放著自大到小排列的數(shù),棧頂?shù)臄?shù)最小,另一個棧是空的.
不允許利用其它的數(shù)據(jù)結構,只能利用這兩個棧,要求把第一個棧里的數(shù)字反過來,從
小到大排列,結果還放在原來的那個棧里面。
1 /**
2 * 有兩個相同的棧,一個里面放著自大到小排列的數(shù),棧頂?shù)臄?shù)最小,另一個棧是空的. 3 * 不允許利用其它的數(shù)據(jù)結構,只能利用這兩個棧,要求把第一個棧里的數(shù)字反過來,從 4 * 小到大排列,結果還放在原來的那個棧里面。 5 */ 6 public static void resortStack(Stack<Integer> stackA, Stack<Integer> stackB){ 7 if(stackA == null || stackB == null) 8 return; 9 assert stackA != null && stackB != null; 10 if(stackA.size() <= 1) 11 return; 12 int len = stackA.size(); 13 for(int i = 0; i < len - 1; i++){ 14 int min = stackA.pop(); 15 while(stackA.size() > i) 16 stackB.push(stackA.pop()); 17 stackA.push(min); 18 while(!stackB.empty()) 19 stackA.push(stackB.pop()); 20 } 21 } 22 public static void testResortStack(){ 23 24 resortStack(null, null); 25 Stack<Integer> stackA = new Stack<Integer>(); 26 Stack<Integer> stackB = new Stack<Integer>(); 27 for(int i = 10; i > 0; i--) 28 stackA.push(i); 29 System.out.println(stackA.toString()); 30 resortStack(stackA, stackB); 31 System.out.println(stackA.toString()); 32 33 } 34 /** 35 * @param args 36 */ 37 public static void main(String[] args) { 38 // TODO Auto-generated method stub 39 testResortStack(); 40 } |
![]() |
|
Copyright © Dest | Powered by: 博客園 模板提供:滬江博客 |