[C언어 소스] 스택, 버퍼 동적 할당

이번에 작성할 코드는 버퍼를 동적으로 할당받는 스택(STACK)입니다.

스택은 자료를 한쪽으로 보관하고 꺼내는 LIFO(Last In First Out) 방식의 자료구조입니다. 스택에 자료를 보관하는 연산을 PUSH라 말하고 꺼내는 연산을 POP이라고 말합니다. 그리고 가장 최근에 보관한 위치 정보를 TOP 혹은 스택 포인터라 말합니다.

알고리즘

Push 연산
IF Top> MAX Then (차면)
    Overflow (버퍼오버플로우)
Else (차지않을)
    Top = Top +1 (Top 위치를 1 증가)
    Buffer[Top] = data (버퍼의 Top 위치에 data 보관)

Pop 연산
IF Top=-1 Then (비었으면)
    Underflow (버퍼언더플로우)
Else
    data = Buffer[Top] (버퍼의 Top 위치의값을데이터에설정)
    Top = Top -1  (Top 위치를 1 감소)

스택 실행 결과
스택 실행 결과

소스 코드


관련 게시글

[C언어 표준 라이브러리 함수] malloc 함수

[C언어 소스] 스택, 버퍼크기 고정

[C언어 소스], 버퍼크기 자동 확장

[C언어 소스] 스택, 버퍼 크기 자동 확장, 동적 생성한 자료 보관

[C언어 소스] 스택을 연결리스트로 구현