Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 栈实现 */
- const Stack = (() => {
- // 闭包使得item为私有变量,避免外部调用(ES6无私有变量)
- let item = new WeakMap();
- // 模拟实现栈 Stack
- class Stack {
- constructor() {
- item.set(this, []);
- }
- push(v) {
- let rem = item.get(this);
- rem.push(v);
- }
- pop() {
- let rem = item.get(this);
- return rem.pop();
- }
- peek() {
- let rem = item.get(this);
- return rem[rem.length];
- }
- clear() {
- item.set(this, []);
- }
- isEmpty() {
- let rem = item.get(this);
- return rem.length === 0;
- }
- }
- return Stack;
- })();
- // test
- // 二进制数转换,使用栈来解决
- function devideBy2(decNumber) {
- let remStack = new Stack();
- let rem;
- let binaryString = '';
- while (decNumber > 0) {
- rem = Math.floor(decNumber % 2);
- remStack.push(rem);
- decNumber = Math.floor(decNumber / 2);
- }
- while (!remStack.isEmpty()) {
- binaryString += remStack.pop().toString();
- }
- return binaryString;
- }
Add Comment
Please, Sign In to add comment