[C언어] Stack&Queue(6) - removeUntilStack 함수 구현하기

2025. 4. 13. 21:02·크래프톤 정글/Code 정글(C언어)

Stack&Queue(6) - removeUntilStack 함수 구현하기

스택에서 특정 값이 나올 때까지 pop하는 함수

주어진 요소 확인하기

구조체

  • Stack: (struct) 스택 구조체
    • ll: (LinkedList) 스택 연산 구현을 위한 연결 리스트 구조체
  • LinkedList: (struct) 연결 리스트 구조체
    • size: (int field) 연결 리스트 요소 갯수
    • *head: (pointer field) 연결 리스트 첫 노드의 주소
  • ListNode: (struct) 노드 구조체
    • item: (int field) 노드의 값
    • *next: (pointer field) 다음 노드의 주소

removeUntilStack 함수의 매개 변수

  • *s: (pointer) 스택 주소
  • value: (int) 스택에서 찾는 값

 

핵심 아이디어

  • 스택이 비어 있다면 return
  • 스택이 빌 때까지 하나씩 pop하면서 값을 확인
  • 만약 값이 찾는 값(value)과 같다면 해당 값을 다시 push 후 return
  • 찾는 값이 없다면 빈 스택이 된 채로 return

 

구현하기

void removeUntil(Stack *s, int value) {
    if (s == NULL) return;  // 스택이 비어있다면 return

    int cur_val;
    while (!isEmptyStack(s)) {
        cur_val = pop(s);           // 스택에서 값 꺼내기
        if (cur_val == value) {
            push(s, cur_val);       // 찾았으면 다시 넣고 종료
            break;
        }
    }
    
}
저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > Code 정글(C언어)' 카테고리의 다른 글

[C언어] 이진 트리(Binary Tree) 구현 실습하기  (0) 2025.04.14
[C언어] Stack&Queue(7) - balanced 함수 구현하기  (0) 2025.04.13
[C언어] Stack&Queue(5) - recursiveReverseQueue 함수 구현하기  (0) 2025.04.13
[C언어] Stack&Queue(4) - reverseQueue 함수 구현하기  (0) 2025.04.13
[C언어] Stack&Queue(3) - isStackPairwiseConsecutive 함수 구현하기  (0) 2025.04.13
'크래프톤 정글/Code 정글(C언어)' 카테고리의 다른 글
  • [C언어] 이진 트리(Binary Tree) 구현 실습하기
  • [C언어] Stack&Queue(7) - balanced 함수 구현하기
  • [C언어] Stack&Queue(5) - recursiveReverseQueue 함수 구현하기
  • [C언어] Stack&Queue(4) - reverseQueue 함수 구현하기
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어)
        • Equipped in 정글(나만무) N
        • 마이 정글(WIL, 에세이) N
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[C언어] Stack&Queue(6) - removeUntilStack 함수 구현하기
상단으로

티스토리툴바