Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 이것이자바다
  • SQLD합격후기
  • googlecolaboratory
  • 코딩앙마
  • sql기간
  • 연습문제
  • 콜라보레이토리
  • HTML
  • 파이썬온라인
  • 백준
  • SQLD합격
  • 독학후기
  • 서버등록
  • 시작일종료일
  • 오류해결
  • spring
  • java
  • oracle
  • SQL
  • Eclipse
  • 비쥬얼스튜디오코드
  • CSS
  • 기간설정
  • 노마드코더
  • 창초기화
  • 기간쿼리
  • Database
  • AllArgsConstructor
  • colaboratory
  • Javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[22일차] flex / Stack / Queue
🏫 Open API_JAVA

[22일차] flex / Stack / Queue

2022. 8. 20. 22:50
728x90

20220819(금)

  • 목차
    - CSS, flex 복습
    - Stack
    - Queue

< 복습 >

Dorothy 작업

 

Dorothy 작업


< Stack - 후입선출 LIFO(Last In First Out) >

- stack : 차곡차곡 쌓아 올린 형태의 자료구조
- push : stack에 data를 넣는 연산

- pop : stack에서 data를 빼는 연산

- Stack-Full 인 경우, SP(Stack Pointer) 값은? 마지막에 머물러있다. ➡ 더이상 못넣어,,push 미실행

 

 

< Stack 구조 짜보기 >

<script>        
        const max = 5;         // 데이터 개수의 최대치      
        const stack = [];       // 스택 자료구조        
        let SP = 0;             // Stack Pointer        
        let count = 0;
       
        // null을 리턴한경우 stack full;
        const push = function(data)
        {
            if (count === max)
            {                
                return false;
            }

            stack[SP] = data;
            count++;
            SP++;

            return true;

        }

        // state === EMPTY, null
        const pop = function()
        {
            if (count === 0)
            {
                return null;
            }

            SP--;
            count--;
            return stack[SP];
        }

        const printStack = function()
        {
            let a = [];
            for (let i = 0; i < count; i++)
            {
                a.push(stack[i]);
           
            }

            console.log(a.join());

        }

        console.log(push({a:1}));        
        console.log(push(22));        
        console.log(push(33));
        console.log(push(44));        
        console.log(push(55));
        console.log(push(66));

        console.log(pop());
        console.log(pop());
        console.log(pop());
        console.log(pop());
        console.log(pop());
       
        console.log(pop());

       
    </script>

 


< Queue - 선입선출 FIFO(First In First Out) >

queue : 줄을 서서 기다리는 것 : 먼저 온 사람이 먼저다!

 

< Queue 구조 짜보기 >

    <script>
        // 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());
             

        enqueue(44);
        enqueue(55);
        enqueue(66);
        enqueue(77);

        console.log(dequeue());
        console.log(dequeue());
        console.log(dequeue());
        console.log(dequeue());
        console.log(dequeue());
       

    </script>

 

 

728x90
저작자표시 (새창열림)

'🏫 Open API_JAVA' 카테고리의 다른 글

[25일차] Opacity로 Animation 효과  (0) 2022.08.24
[23~24일차] position / 개인 프로젝트 진행  (0) 2022.08.23
[21일차] 개인 프로젝트 기획안 피드백 / 가이드 코딩  (0) 2022.08.18
[19~20일차] DOM / 프로젝트 기획안  (0) 2022.08.17
[18일차] 알고리즘 / 버블 정렬  (0) 2022.08.17
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [25일차] Opacity로 Animation 효과
    • [23~24일차] position / 개인 프로젝트 진행
    • [21일차] 개인 프로젝트 기획안 피드백 / 가이드 코딩
    • [19~20일차] DOM / 프로젝트 기획안
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바