스택(Stack) 자료구조 개념 | 배열 Vs 연결 리스트 | LIFO(Last In First Out) | push | pop | top | Overflow | Underflow

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024

Комментарии • 23

  • @withhoneyc
    @withhoneyc  Год назад

    00:00 스택(Stack) 이란?
    04:17 배열을 이용한 스택
    15:13 연결리스트를 이용한 스택
    ▶ 소스코드 : cafe.naver.com/honeyc/46334

  • @라면-f3i
    @라면-f3i Месяц назад +1

    이제 스택 잘 배워보겠습니다.
    이번 강의 잘 들었습니다. 감사합니다!!

  • @액티비아-e2g
    @액티비아-e2g 8 месяцев назад +1

    설명 진짜 잘하시는 거 아시죠?
    최고입니다. 교수님들이랑은 비교도 안 될정도로 잘하시는데 강의를 무료로 올려주시다니.. 존경합니다 ㅜㅜ

    • @withhoneyc
      @withhoneyc  8 месяцев назад

      제 강의를 좋게 생각해주셔서 정말 감사 드립니다🙏 더 좋은 강의로 보답할게용~

  • @뀩-k8v
    @뀩-k8v 11 месяцев назад +1

    진짜 학원수업 듣고 이해가 하나도 안갔는데 혀니쌤 강의보고 이해가 잘 됐네요!! 고맙습니다😊

    • @withhoneyc
      @withhoneyc  11 месяцев назад

      이해가 되신다니 정망 기쁘네용😊

  • @seol1208
    @seol1208 6 месяцев назад +1

    구독하고 매일 다른 영상들 듣고 있어요!!

    • @withhoneyc
      @withhoneyc  6 месяцев назад

      ㅎㅎㅎㅎ 정말 감사합니다~🙏

  • @정규앨범명반기원
    @정규앨범명반기원 10 месяцев назад +1

    완벽한 설명입니다!!!!

    • @withhoneyc
      @withhoneyc  10 месяцев назад

      감사합니다😊

  • @킴키-o1y
    @킴키-o1y 11 месяцев назад +1

    감사합니다

    • @킴키-o1y
      @킴키-o1y 10 месяцев назад

      스택을 배열로 구현하려면 top변수 필요. push, pop할 때 top값 증감시킴. underflow는 top = -1, overflow는 top = max_size-1
      스택을 연결리스트로 구현하려면 맨앞삽입, 맨앞삭제. free함수로 물리적 삭제. underflow는 head = NULL일 때, overflow는 부존재

  • @Yumyumchad
    @Yumyumchad 8 месяцев назад +1

    진짜 저를 살리셧어요…..

    • @withhoneyc
      @withhoneyc  8 месяцев назад

      ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 축하드려용🤣

  • @라면-f3i
    @라면-f3i Месяц назад

    단일연결리스트 배울 때는 생전 첨 보는 걸 배우는 느낌이라 힘들었는데,
    스택은 단일연결리스트에서 배운 개념을 활용하는 거라서 훨신 수월하네요.
    앞으로 나오는 큐, 트리, 힙, 그래프, 해시 이런 것들도 다 그런 식인가요?

    • @withhoneyc
      @withhoneyc  Месяц назад

      넹 연결리스트로 구현하는건 다 같아요~🤗
      그래프와 트리는 구조가 좀 더 복잡 합니다.

  • @jjj5603
    @jjj5603 Год назад

    연결리스트로 스택을 구현할 때 맨앞삽입으로만 해야하는건가요? 맨뒤삽입으로 해도 똑같은 것 같은데 이유가 있는걸까요? 아니면 그냥 코딩하는 사람의 취향차인건가요?

    • @withhoneyc
      @withhoneyc  Год назад

      맨 앞 삽입 시 삽입한 역순으로 연결되며,
      맨 뒤 삽입 시 삽입한 순으로 연결됩니다:)

    • @jjj5603
      @jjj5603 Год назад

      @@withhoneyc 네 그건 이해를 했는데요 근데 맨뒷 삽입을 하고 맨 뒤 삭제를 하면 결과는 똑같아지잖아요? 그럼 연결리스트는 배열과 달리 순서가 중요하지 않은 것 같다고 생각이 들어서요. 넣고 빼는 방향만 맞춰주면 되는게 아닌가요?

    • @withhoneyc
      @withhoneyc  Год назад +2

      아 넹넹 순서만 맞추면 됩니다:)
      다만 벌도의 포인터가 없는 경우 맨 뒤 삽입의 시간복잡도도는 O(N)이고, 맨 앞 삽입은 O(1)입니다.

    • @jjj5603
      @jjj5603 Год назад

      @@withhoneyc 아~ 그래서 맨앞삽입을 사용하는거군요! 이해했습니다. 감사합니다!

  • @haydn1268
    @haydn1268 Год назад +1

    배열에서 pop은 물리적 삭제가 아니라 논리적으로 삭제되는 것이다. 그 이유는 배열의 값을 삭제할 수 없으니까 top을 1만큼 낮게 이동시킴으로서 삭제됐다고 생각을 한다. 배열에 남은 값은 쓰레기값이다. top의 값이 -1이라는 것은 저장된 값이 없는 것이다. empty이다 이것을 underflow 상태라고 한다.
    이제 다시 top을 0으로 이동하고 새로운 값을 push하면 남아있던 쓰레기값이 사라지고 새로운값이 들어가는 것이다. 이것이 물리적인 삭제가 된 상태이다. 이것을 가능토록 해주는 것은 변수 top이다. 만약에 top이 4가 된다면 이것은 full로 overflow상태이다.
    배열의 마지막 방은 배열의 크기보다 1만큼 작다. 원래 배열의 크기가 5였으므로 max_size - 1이므로 top이 4일때 overflow이다.

    • @withhoneyc
      @withhoneyc  Год назад

      와우!!! 책 쓰셔도 되겠어요!!! 정확하네요!!!