2. Data Structure - stack, queue
没入飛行機に乗って、すでに2つ目の課題Data Structureが始まっています.
資料構造でうまくいったstackやqueueを忘れる前に、コメントを残すべきです.
stack
資料構造でうまくいったstackやqueueを忘れる前に、コメントを残すべきです.
stack
皿
スタックはLIFO構造です.
つまり、最近スタックに追加されたアイテムが最初に削除されます.
もっと簡単に説明して、レストランで皿を考えてみましょう.
皿は柱のように積み上げて、使うときに上のものを出して使います.
これがスタックです.
#stackの方法
push(要素)-スタックの上部に要素を追加します.
pop()-スタックの上部から要素を削除して返します.
size()-スタックの現在の要素数を返します.
簡単なpop,push,sizeコードを記述した.class Stack {
constructor() {
this.storage = {}; // {el}
this.top = 0;
}
size() {
return this.top
} // push or pop 을 할 경우 최종적인 결과값을 담는다.
push(element) {
this.storage[this.top + 1] = element
this.top = this.top + 1
} // stack의 맨위에 담는 것
pop() {
let result = this.storage[this.top]
if(this.top === 0){
this.top = 0 // 제거한다 ex) 1,2 ... 10 / 10을 pop을 하면 10을 제거
}
else {
delete this.storage[this.top]
this.top = this.top - 1
}
return result
}
}
queue
飲み物を注文する
キュー(queue)は、先にデータを入力するFIFO構造である.
簡単に言えば、カペオンで飲み物を注文した人が並んでいる様子を考えればいいのです.
先に行った人が先に出てきてFist InfirstOut!
Queueのメソッド
Enqueue(element)-キューの後ろに要素を追加します.
dequeue()-キューから要素を削除して返します.
size()-キュー内の現在の要素の数を返します.
queueも上記の方法で実装したコードを記述しようと試みた.class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return Object.keys(this.storage).length
}
enqueue(element) {
this.storage[this.rear] = element
this.rear = this.rear + 1
}
dequeue() {
let result = this.storage[this.front]
delete this.storage[this.front]
this.front++
return result
}
}
stackとqueueのコンセプトは比較的簡単に終わりました.
次にlinklistとhash tableについてコメントします.
Reference
この問題について(2. Data Structure - stack, queue), 我々は、より多くの情報をここで見つけました
https://velog.io/@whljm1003/2.-Data-Structure-stack-queue
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class Stack {
constructor() {
this.storage = {}; // {el}
this.top = 0;
}
size() {
return this.top
} // push or pop 을 할 경우 최종적인 결과값을 담는다.
push(element) {
this.storage[this.top + 1] = element
this.top = this.top + 1
} // stack의 맨위에 담는 것
pop() {
let result = this.storage[this.top]
if(this.top === 0){
this.top = 0 // 제거한다 ex) 1,2 ... 10 / 10을 pop을 하면 10을 제거
}
else {
delete this.storage[this.top]
this.top = this.top - 1
}
return result
}
}
飲み物を注文する
キュー(queue)は、先にデータを入力するFIFO構造である.
簡単に言えば、カペオンで飲み物を注文した人が並んでいる様子を考えればいいのです.
先に行った人が先に出てきてFist InfirstOut!
Queueのメソッド
Enqueue(element)-キューの後ろに要素を追加します.
dequeue()-キューから要素を削除して返します.
size()-キュー内の現在の要素の数を返します.
queueも上記の方法で実装したコードを記述しようと試みた.
class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return Object.keys(this.storage).length
}
enqueue(element) {
this.storage[this.rear] = element
this.rear = this.rear + 1
}
dequeue() {
let result = this.storage[this.front]
delete this.storage[this.front]
this.front++
return result
}
}
stackとqueueのコンセプトは比較的簡単に終わりました.次にlinklistとhash tableについてコメントします.
Reference
この問題について(2. Data Structure - stack, queue), 我々は、より多くの情報をここで見つけました https://velog.io/@whljm1003/2.-Data-Structure-stack-queueテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol