728x90
2022/08/19 금
- Stack
- Queue
✔️Stack
선입후출 형태의 자료구조
더보기
const max = 5; //데이터 개수의 최대치
const stack =[]; //스택 자료구조
let sp = 0; // stack pointer
let count = 0;
// state === full, null
const push = function(data)
{
if( count === max)
{
return false;
}
stack[sp] = data;
count++;
sp++;
return true;
};
//state === empty, nall
const pop = function()
{
if( count === 0 )
{
return null;
}
sp--; // 위에서 sp++을 했기때문에 하나빼줌 그래야 빼고자하는 위치로 돌아옴.
count--;
return stack[sp];
}
const printstack = function()
{
let a = [];
for(let i =0; i < sp; i++)
{
a.push(stack[i]);
}
console.log(a.join()); // 구분자 ,로 나타냄
}
console.log(push(11));
console.log(push(22));
console.log(push(33));
console.log(push(44));
✔️Queue
선입선출 형태의 자료구조
더보기
// queue 데이터 구조.
const queue = [ ];
// 최대 데이터 개수.
const max = 5;
// 몇개 데이터가 있는가?
let count = 0;
// rear : push-pointer
let rear = 0;
// front : pop-pointer
let front = 0;
const enqueue = function(data)
{
if (count === max)
return false;
// queue에다 데이터를 넣어준다.
rear = rear % max;
queue[rear] = data;
count++;
rear++;
return true;
}
const dequeue = function()
{
let result;
if (count === 0)
return false;
front = front % max;
result = queue[front];
count--;
front++;
return result;
}
enqueue(11);
enqueue(22);
enqueue(33);
console.log(dequeue());
console.log(dequeue());
'🏃♀️ Do it ! > TIL' 카테고리의 다른 글
Scroll / Opacity (0) | 2022.08.24 |
---|---|
Opacity / Translate (0) | 2022.08.24 |
프로젝트 기획 (0) | 2022.08.19 |
Element / event (0) | 2022.08.17 |
버블소트 / DOM구조 (0) | 2022.08.16 |