1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

javascriptでスタックとキューを書く

Posted at

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

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メソッドも同じように配列の先頭を取り出すと同時に削除してしまいます。
shift,pop,pushメソッド以外にもたくさんの破壊的なメソッドがあるので気を付けて使わないといけないなと思いました。

#終わりに
アルゴリズムとデータ構造を勉強したのでそのアウトプットのために書きました。
参考になったらありがたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?