Data Structure(1) - Stack, Queue
Stack
StackはLIFOタイプです.
最近アクセスしたサイト(後退、前進)、関数のcall stackなどが典型的なstack使用例です.
Params
一番上(最新)のデータを指すtop
ストレージスペースのstorageの指定
Method
size()は、データの格納サイズ()を表します.
データ挿入用push(data)
最新データのpop()
それ以外に、isEmpty()やisFull()などの実装の程度にも依存します.
Psuedo Code
size() {
// top속성을 활용, top은 push됨에 따라 top++될 것이므로,
// top을 return 하면 그것이 바로 size가 될 것임
}
push(data) {
// 1. storage의 top인덱스에 data를 할당
// 2. top을 ++처리
}
pop() {
// 1. 변수에 storage의 top에 해당하는 data를 찾아서 저장
// 2. 그 data는 삭제
// 3. 만약, 삭제 후의 top이 0이 아니라면 top을 --처리
// 4. data를 저장했던 변수를 return
}
Queue
QueueはFIFOタイプです.
最初に入ったデータは最初に処理され、最後に入ったデータは前のデータがすべて処理されるまで待たなければならない.
キューは、入力順にデータを処理する必要がある場合に使用します.
i.e)プリンタキュー等
Params
きおくくうかん
いちばん前
一番後ろ
Method
size()は、データの格納サイズ()を表します.
一番後ろのデータを挿入するenqueue(data)
先頭のデータからデータを抽出するdequeue()
また、peek()等により実現度合いが異なります.
Psuedo Code
size() {
// 가장 뒤를 가리키는 rear를 return하거나,
// 혹은 배열이면 length, 객체면 키만 뽑아내 그 길이를 return
}
enqueue(data) {
// 1. rear에 data 할당
// 2. 상황에 따라 front, rear 따로 처리해야 할 것
}
dequeue() {
// 1. 변수에 front가 가리키는 data 저장
// 2. 해당 data 삭제
// 3. 만약, rear가 현재 0이 아니라면 front++, rear-- 처리
// 4. 만약, rear가 0이라면 front는 0으로 처리
// 5. data를 저장해뒀던 변수 return
}
Reference
この問題について(Data Structure(1) - Stack, Queue), 我々は、より多くの情報をここで見つけました https://velog.io/@awesomebylee/Data-Structure-Stack-Queueテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol