99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

App下載

JS數(shù)據(jù)結構棧內操作:處理十進制轉二進制代碼

猿友 2021-02-20 18:09:47 瀏覽數(shù) (7575)
反饋

微信截圖_20210220093819

計算十進制轉換為二進制的過程可以當成把每個計算后取余的數(shù)字壓入棧內的操作

具體實現(xiàn)過程如下

//           十進制轉二進制代碼
function dec2bin(decNumber){

    //定義棧
var stack=new Stack()
    //將數(shù)字壓入棧內
while(decNumber>0){
    // 1- 獲取余數(shù) 將其壓入棧內
    stack.push(decNumber%2)
    // 2- 獲取整除后的結果 作為下一次取余的數(shù)字
    decNumber=Math.floor(decNumber/2)

}
//               從棧內取出

var result=''
while(!stack.isEmpty()){
    //將棧頂數(shù)字依次壓入數(shù)組中 
result+=stack.pop()

}
//返回結果
return result

}
console.log(dec2bin(1000))
console.log(dec2bin(100))
console.log(dec2bin(10))

微信截圖_20210220093917

手寫思路:

1、首先定義一個函數(shù) 并定義傳入所需轉換數(shù)字

2、使用棧結構(此處需提前封裝好棧 功能 如 pop push)

3、循環(huán)判斷(此處為將數(shù)字壓入棧內操作) 數(shù)字是否大于0

  • 循環(huán)內部 :首先對傳入的數(shù)字 取余(此處為十進制轉二進制 需除2)然后 將數(shù)字取整后的結果更新 循環(huán)操作 直到數(shù)字小于等于0

4、首先定義一個空數(shù)組

5、循環(huán)判斷(此處為將結果從棧內取出操作)棧內是否有元素

  • 循環(huán)內部 :空數(shù)組 加等 棧內每次取出的元素

下面是封裝棧的代碼 可省略

function Stack() {

    //棧 中的一些屬性
    this.items = []
    //棧內操作

    //1.將元素壓入棧
    Stack.prototype.push = function (element) {
        this.items.push(element)
    }

    //2.從棧中取出元素
    Stack.prototype.pop = function () {
        return this.items.pop()
    }

    //3.查看一下棧頂元素(不改變棧結構)
    Stack.prototype.peek = function () {
        return this.items[this.items.length - 1]
    }

    //4.判斷棧是否為空
    Stack.prototype.isEmpty = function () {
        return this.items.length == 0
    }

    //5.獲取棧中元素個數(shù)

    Stack.prototype.size = function () {
        return this.items.length
    }
 //6.toString方法
    Stack.prototype.toString = function () {
        var result = ''
        for (var i = 0; i < this.items.length; i++) {
            result += this.items[i]
        }
        return result
    }
}


0 人點贊