//栈结构
class Stack {
container =[];//进栈enter(element){
this.container.unshift(element)}//出栈leave(element){return this.container.shift(element)}size(){return this.container.length
}value(){return this.container
}}
let num =58;
console.log(num.toString(2))//111010// 十进制转二进制,注意此处的栈是从头部塞入,输出的顺序才会符合要求
Number.prototype.change = function change(){
let sk = new Stack;
let yu = this.valueOf()if(yu ===0)return'0'while(yu >0){
sk.enter(yu %2)
yu = Math.floor(yu /2)}return sk.value().join('')}
console.log(num.change())//111010
JavaScript实现简易版的队列功能+队列实现击鼓游戏思想
队列结构
classQueue{
container =[];//进队列enter(element){this.container.push(element)}//出队列leave(){returnthis.container.shift()}size(){returnthis.container.length
}value(){returnthis.container
}}//击鼓游戏,n个人,m个数functiongame(n, m){let qe =newQueue;//放入n个人for(let i =1; i < n+1; i++){
qe.enter(i)}//循环到只剩下一个人while(qe.size()>1){//将非指定数字的人从前面移除,放到队列后面for(let i =0; i < m-1;i++){
qe.enter(qe.leave())}// 将指定数字的人从前面移除
qe.leave()}return qe.value().toString()}
console.log(game(5,3))