Open
Description
栈的三种含义
1.数据结构
先进后出
2.代码运行方式
调用栈
3.内存区域
程序运行的时候需要内存空间存放数据, 一般来说系统会划分为两种不同的方式来存储数据, 一种是栈(Stack),一种是
堆(heap);
内存分配中中的堆栈
栈: 由操作系统自由分配释放,存放函数的参数值, 局部变量的值等
堆: 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收
使用JS实现栈
class Stack {
constructor() {
this.items = [];
}
push(element) {
this.items.push(element)
}
pop() {
this.items.pop();
}
// 查看栈顶元素
peek() {
return this.items[this.items.length -1];
}
isEmpty() {
return this.items.length == 0;
}
size() {
return this.items.length;
}
clear() {
this.items = [];
}
print() {
console.log(this.items.toString());
}
}
用栈来解决问题
十进制转二进制
function divideBy2(decNumber) {
var remStack = new Stack, rem, 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;
}
十进制转成其他任意进制
参考
Metadata
Metadata
Assignees
Labels
No labels