Web前端 • 共约 71 字 • 预计阅读 1 分钟
数据结构学习-栈
栈结构遵循以下规则
- 数据从栈顶 (又称为栈尾) 进入
- 从栈顶退出
- 遵循后进先出的 LIFO 原则
一个栈应该有以下方法: push pop peek isEmpty size clear toString
封装一个栈
// 一个栈应该有以下方法: push pop peek isEmpty size clear toString
class Stack {
private stack: unknown[] = [];
push(data: unknown) {
this.stack.push(data);
}
pop() {
return this.stack.pop();
}
// 返回栈顶元素
peek() {
return this.stack[this.stack.length - 1];
}
isEmpty() {
return this.stack.length === 0;
}
size() {
return this.stack.length;
}
clear() {
this.stack = [];
}
toString() {
return this.stack.join("-");
}
}
const stack = new Stack();
debugger;
应用: 进制转换
import { Stack } from "./stack";
// 进制转换 利用辗转相除法
function convert(DecNumber: number, base: number) {
const remStack = new Stack();
const baseString = "0123456789ABCDEF";
let res = "";
while (DecNumber > 0) {
remStack.push(DecNumber % base);
DecNumber = Math.floor(DecNumber / base);
}
while (!remStack.isEmpty()) {
res += baseString[remStack.pop() as number];
}
return res;
}
console.log(convert(1234, 16));