210617.Today I学習(TIL):データ構造(Stack,Queue)
Stack
スタックは、最も早くデータにアクセスする構造であり、第1の第1または第1の出力(LIFO)構造とも呼ばれる.
Stackは図の通りです.
Stackアルゴリズムの実現は以下の通りである.class Stack {
constructor() {
this.storage = {};
this.top = 0; // 스택의 가장 상단을 가리키는 포인터 변수를 초기화
}
size() {
return this.top;
}
// 스택에 데이터를 추가
push(element) {
this.storage[this.top] = element;
this.top += 1;
}
// 가장 나중에 추가된 데이터가 가장 먼저 추출
pop() {
if (this.size() <= 0) {
return; // 빈 스택에 pop 연산을 적용해도 에러가 발생하지 않아야 함 => 아무것도 리턴하지 않음
}
const result = this.storage[this.top - 1];
delete this.storage[this.top - 1];
this.top -= 1;
return result;
}
}
Queue
Queueは,先入先出,後入先出,すなわち先入後出の資料構造である.先入先出というコンセプトで、スーパーやコンビニの在庫処理方法と同じなので、私にはStackよりも近づきやすいです.
Queueは図として表示されます.
Queueアルゴリズムの実現は以下の通りである.class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return this.rear - this.front;
}
// 큐에 데이터를 추가
enqueue(element) {
this.storage[this.rear] = element;
this.rear += 1;
}
// 가장 먼저 추가된 데이터가 가장 먼저 추출
dequeue() {
if (this.size() <= 0) {
return; // 빈 큐에 dequeue 연산을 적용해도 에러가 발생하지 않아야 함 => 아무것도 리턴하지 않음
}
const result = this.storage[this.front];
delete this.storage[this.front];
this.front += 1;
return result;
}
}
今週末はstackとqueueを使ったアルゴリズムの問題を復習します.今になってやっと概念が理解できたが,アルゴリズムを深化させる問題は解決しにくい.第2節まで頑張ります!
Reference
この問題について(210617.Today I学習(TIL):データ構造(Stack,Queue)), 我々は、より多くの情報をここで見つけました
https://velog.io/@elma98/210617.-Today-I-LearnedTIL-자료구조Stack-Queue
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class Stack {
constructor() {
this.storage = {};
this.top = 0; // 스택의 가장 상단을 가리키는 포인터 변수를 초기화
}
size() {
return this.top;
}
// 스택에 데이터를 추가
push(element) {
this.storage[this.top] = element;
this.top += 1;
}
// 가장 나중에 추가된 데이터가 가장 먼저 추출
pop() {
if (this.size() <= 0) {
return; // 빈 스택에 pop 연산을 적용해도 에러가 발생하지 않아야 함 => 아무것도 리턴하지 않음
}
const result = this.storage[this.top - 1];
delete this.storage[this.top - 1];
this.top -= 1;
return result;
}
}
class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return this.rear - this.front;
}
// 큐에 데이터를 추가
enqueue(element) {
this.storage[this.rear] = element;
this.rear += 1;
}
// 가장 먼저 추가된 데이터가 가장 먼저 추출
dequeue() {
if (this.size() <= 0) {
return; // 빈 큐에 dequeue 연산을 적용해도 에러가 발생하지 않아야 함 => 아무것도 리턴하지 않음
}
const result = this.storage[this.front];
delete this.storage[this.front];
this.front += 1;
return result;
}
}
Reference
この問題について(210617.Today I学習(TIL):データ構造(Stack,Queue)), 我々は、より多くの情報をここで見つけました https://velog.io/@elma98/210617.-Today-I-LearnedTIL-자료구조Stack-Queueテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol