버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 문제풀이
  • 이것이자바다
  • SQL
  • opacity
  • 안드로이드
  • 배열
  • 변수
  • 이클립스
  • 기본쿼리
  • 큐
  • 홈페이지
  • sqld
  • 객체지향
  • 스프링
  • foreach
  • 게시판
  • callback
  • 톰캣
  • 오라클
  • 버블소트
  • 부트스트랩
  • final필드
  • 데이터베이스
  • 코틀린
  • 함수
  • 포트폴리오
  • 세션
  • dml
  • 만들기
  • 스택

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

스택 / 환영큐
🏃‍♀️ Do it !/TIL

스택 / 환영큐

2022. 8. 19. 09:19
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
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • Scroll / Opacity
    • Opacity / Translate
    • 프로젝트 기획
    • Element / event
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바