数据结构之队列的应用(实现斐波那契数列)
导入 基本的队列结构 的构造函数
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