亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

javascript實現數據結構中的隊列結構

標簽:
JavaScript
function Queen() {
    this.dataStore = [];
    this.enqueue = enqueue;
    this.dequeue = dequeue;
    this.front = front;
    this.back = back;
    this.toString = toString;
    this.empty = empty;
}
//enqueue方法向队尾添加一个元素
function enqueue(element) {
    this.dataStore.push(element);
}
//dequeue方法删除队首的元素
function dequeue() {
    return this.dataStore.shift();
}
//读取队首的元素
function front() {
    return this.dataStore[0];
}
//读取队尾的元素
function back() {
    return this.dataStore[this.dataStore.length - 1];
}
//toString方法
function toString() {
    let str = '';
    for (let i = 0; i < this.dataStore.length; i++) {
        str += this.dataStore[i] + '\n';
    }
    return str;
}
//判断队列是否为空
function empty() {
    if (this.dataStore.length == 0) {
        return true;
    } else {
        return false;
    }
}
//判断队列是否为空
function empty() {
    if (this.dataStore.length == 0) {
        return true;
    } else {
        return false;
    }
}
//基数排序
function distribute(nums, queues, n, digit) {
    for (var i = 0; i < n; i++) {
        if (digit == 1) {
            queues[nums[i] % 10].enqueue(nums[i]);
        } else {
            queues[Math.floor(nums[i] / 10)].enqueue(nums[i]);
        }
    }
}
//从队列中收集数字
function collect(queues, num) {
    let i = 0;
    for (let digit = 0; digit < 10; digit++) {
        while (!queues[digit].empty()) {
            nums[i++] = queues[digit].dequeue();
        }
    }
}
//返回队列的字符串
function dispArray(arr) {
    let str = '';
    for (let i = 0; i < arr.length; i++) {
        str += arr[i] + " ";
    }
    print(str);
}
let queues = [];
for (let i = 0; i < 10; ++i) {
    queues[i] = new Queue();
}
let nums = [];
for (let i = 0; i < 10; i++) {
    nums[i] = Math.floor(Math.random() * 100);
}
print("Befor radix sort: ");
dispArray(nums);
distribute(nums, queues, 10, 1);
collect(queues, nums);
distribute(nums, queues, 10, 10);
collect(queues, nums);
print('\n\n After radix sort: ');
dispArray(nums);


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消