ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • stack & queue
    기타 2020. 12. 3. 18:05
    반응형

    오늘은 stack 과 queue 를 구현해보았다.

     

    이러한 것들을 data structure 라고 하는데 오늘 써볼내용은 primitive한 데이터 유형이 아닌 abstract한 데이터유형중 일부이다.

     

    stack 은 쌓여있는 접시를 생각하면 된다.

    뷔페에가서 접시를 빼는데 아래에 있는 접시를 빼는 사람은 없을 것이다. 또한 씻은 접시를 굳이 아래에 끼워넣는 사람도 없을 것이다.

     

    queue 는 대기열을 생각하면된다 

     

    상황에 따라 사용 하는 데이터 유형이 달라진다 . 상황을 어떠한 데이터 유형으로 사용할지를 정하는 것이 중요하다.

     

    stack 형태는 push 함수 pop 함수 size 조회 이외 다양한 함수를 추가할수있는데 이는 추가적인 작업이다

     

    queue 형태는 enqueue 와 dequeue 함수를 포함하고 size 조회도 포함한다. 기본적으로 

     

    구현은 클래스를 통해서 생성 하였다 이러한 학습과정에서 기존의 함수들의 객체적인 성격이 여기에서 나오는 구나 하고 느꼇다

    constructor 키워드 안에 기본적으로 필요한 변수들이 저장이 되어있어 생각을 하는것에 많은 도움을 받았다.

     

    stack 을 구현할때에는 storage = {} , top = -1 이라는 속성이 정해져 있었다.

    그래서 함수를 storage 에 push 되도록 적었고 그에 따라 가르키는 top의 값을 바꿔 주었다. 

    그리고 변하는 top 의 값은 최근의 값을 가르키도록 하여서 제거 할때는 그 top 값을 이용하여  제거하도록 함수를 작성했다.

    사이즈는 스토리지의 길이를 이용하였는데 객체형태라 키값을 배열로 바꿔 사용하였다.

     

    queue 는 유사한 형태이나 변수가 하나 더 필요하였다. 하나의 변수는 제거되는 자리를 가리키는 용도로 사용하였고 다른하나는 

    추가할 자리를 가리키는 용도로 사용하였다. 

     

    제거하는 함수는 제거되는 값을 리턴해야 했는데 그 작동이 제거와 같은 함수내에서 작동하다보니 함수안에서 변수가 하나 더필요하였다.

     

    문제를 해결해 나갈때 어떻게 어떠한 변수들을만들고 담아가야 진행이 편리한가에 대해서 생각해볼수 있는 과제였다.

     

     

     

     

    '기타' 카테고리의 다른 글

    자료구조 를 마치며  (0) 2020.12.08
    data structure link  (0) 2020.12.07
    참조 변수 타입  (0) 2020.12.05
    git 기초적인 명령  (0) 2020.11.30
    질문을 잘 하는법  (0) 2020.11.30
Designed by Tistory.