Guest User

Untitled

a guest
Jul 21st, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. /* 栈实现 */
  2. const Stack = (() => {
  3. // 闭包使得item为私有变量,避免外部调用(ES6无私有变量)
  4. let item = new WeakMap();
  5. // 模拟实现栈 Stack
  6. class Stack {
  7. constructor() {
  8. item.set(this, []);
  9. }
  10.  
  11. push(v) {
  12. let rem = item.get(this);
  13. rem.push(v);
  14. }
  15.  
  16. pop() {
  17. let rem = item.get(this);
  18. return rem.pop();
  19. }
  20.  
  21. peek() {
  22. let rem = item.get(this);
  23. return rem[rem.length];
  24. }
  25.  
  26. clear() {
  27. item.set(this, []);
  28. }
  29.  
  30. isEmpty() {
  31. let rem = item.get(this);
  32. return rem.length === 0;
  33. }
  34. }
  35. return Stack;
  36. })();
  37.  
  38.  
  39. // test
  40. // 二进制数转换,使用栈来解决
  41. function devideBy2(decNumber) {
  42. let remStack = new Stack();
  43. let rem;
  44. let binaryString = '';
  45.  
  46. while (decNumber > 0) {
  47. rem = Math.floor(decNumber % 2);
  48. remStack.push(rem);
  49. decNumber = Math.floor(decNumber / 2);
  50. }
  51.  
  52. while (!remStack.isEmpty()) {
  53. binaryString += remStack.pop().toString();
  54. }
  55.  
  56. return binaryString;
  57. }
Add Comment
Please, Sign In to add comment