見出し画像

javascriptでスタックとキューというアルゴリズムを作ってみる

初めに

まずはじめにスタックとキューについて説明します。
スタックというものは後にいれたものを先に取り出すことです。
キューは先にいれたものを先に取り出すことです。

スタックとキューの書き方

スタック

main.js


let arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.push(4);

//[1,2,3,4]

console.log(arr.pop()); //4
console.log(arr.pop()); //3
console.log(arr.pop()); //2
console.log(arr.pop()); //1

スタックではpushメソッドとpopメソッドを使います。
push()は配列の最後に引数に入ってるものを格納するメソッドで,
pop()は配列の最後にある物を取り出すメソッドです。

まず最初に変数arrのところで配列を宣言します。
そのあとにpush()で引数に入っている数字を格納していっています。
次にpopメソッドで最後のほうから取り出してそれをconsole.logで出力しています。

キュー

main.js

let arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.push(4);

//[1,2,3,4]

console.log(arr.shift()); //1
console.log(arr.shift()); //2
console.log(arr.shift()); //3
console.log(arr.shift()); //4

キューではpushメソッドとshiftメソッドを使います。
shift()というものは配列の最初にあるものを取り出すメソッドです。

配列を宣言し、pushで格納します。
そのあとshift()で最初にいれたものを取り出すという感じです。

破壊的なメソッド

配列などのオブジェクト(ここではarr)に変更などするとそれに影響が及ぶことです。
最初は空だったarrもpush()により格納されて変更されました。
shift()やpop()も破壊的なメソッドです。
わかりやすいようにコードを書きました。スタックを例に。

main.js

let arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.push(4);
//[1,2,3,4]

arr.pop() //4
//ここでarrの中身を見てみます。
console.log(arr); // [1,2,3]

最初は[1,2,3,4],  pop()で4を取り出してみたところ、arrの中身は[1,2,3]になりました。
実は取り出したと同時に削除してしまうんですね...
shiftメソッドも同じように配列の先頭を取り出すと同時に削除してしまいます。
他にも破壊的なメソッドはあるので、mdnとかで調べてみてください。

終わり

この記事が気に入ったらサポートをしてみませんか?