数据结构之队列的应用(实现斐波那契数列)

数据结构之队列的应用(实现斐波那契数列)

导入 基本的队列结构 的构造函数

const Queue = require('./Queue.js')

/**
 * @description 获取第n项斐波那契数列的值
 * @param {Number} n n必须为正整数
 */
function get_fibonacci_item(n) {

    const queue = new Queue()

    let i = 1
    while (i <= n) {
        if (i === 1 || i === 2) {
            queue.enqueue(1)
        } else {
            const del_num = queue.dequeue()
            const head_num = queue.head()
            queue.enqueue(del_num + head_num)
        }
        i++
    }
    return queue.tail()
}

console.log('第1项 => ', get_fibonacci_item(1)); // 1
console.log('第2项 => ', get_fibonacci_item(2)); // 1
console.log('第3项 => ', get_fibonacci_item(3)); // 2
console.log('第4项 => ', get_fibonacci_item(4)); // 3
console.log('第5项 => ', get_fibonacci_item(5)); // 5
console.log('第6项 => ', get_fibonacci_item(6)); // 8
console.log('第7项 => ', get_fibonacci_item(7)); // 13
console.log('第8项 => ', get_fibonacci_item(8)); // 21
console.log('第9项 => ', get_fibonacci_item(9)); // 34
console.log('第10项 => ', get_fibonacci_item(10)); // 55

posted @ 2019-06-08 15:41  _Jarrett  阅读(713)  评论(0编辑  收藏  举报