-----------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
-----------------------------------------------------
우선 int 자료형을 stack이라는 이름으로
변경해서 이 자료가 스택 구조를 따른다는 것을 말해줍니다.
-----------------------------------------------------
그 다음
스택의 최상위 위치를 가리키는
Top 값을 5로 해줍니다.
길이가 5인 배열을 기준으로 잡았기 때문에
배열 끝 인덱스인 4 에 더하기 1에서
5로 잡아준 것입니다.
-----------------------------------------------------
Push함수의 프로토타입은
반환형태가 없고
매개변수로
스택에 넣을 데이터를 받는 매개변수
배열의 주소를 받는 매개변수
2개 입니다.
-----------------------------------------------------
Pop함수의 프로토타입은
반환형태가 없고
매개변수로
배열의 주소를 받는 매개변수
1개 입니다.
-----------------------------------------------------
-----------------------------------------------------
우선
스택구조로 저장될
길이가 5인 배열을 하나 만들어 줍니다.
아까 typdef 을 썼기 때문에
Int 대신 stack이라는 이름을 사용합니다.
-----------------------------------------------------
그 다음
데이터를 넣는 푸쉬 함수를
5번 실행해줍니다.
데이터는 반복문으로
10 30 50 70 90을 넣었습니다.
-----------------------------------------------------
그 다음
데이터를 빼는 팝 함수를
반복문 으로 5번
실행했습니다.
-----------------------------------------------------
우선 데이터를 집어넣는
PUSH를 구현하는 법부터 살펴보겠습니다.
-----------------------------------------------------
-----------------------------------------------------
PUSH 동영상
-----------------------------------------------------
일단 내부 구조는
배열 스택이
꽉 차면 top이 0이 되므로
오류처리의 일종으로 top이 0이 되면
더 이상 데이터를 넣을수 없다는
캔트 푸쉬를 만들어 줍니다.
-----------------------------------------------------
그 다음
Top이 0이 아니라서
데이터를 넣을수 있으면
우선 데이터를 푸쉬 한다고 출력한다음
Top값을 1빼고
즉 한칸 위로 올린다음
데이터를 넣어줍니다.
-----------------------------------------------------
-----------------------------------------------------
POP 동영상
-----------------------------------------------------
Pop 함수의 내부구조는
데이터가 다 비워진 상태는
더 이상 데이터를 뺄수 없습니다.
그 때의 top 값이 5이므로
Top이 5이면
더 이상 데이터를 뺄 수 없다는
캔트 팝을 출력해줍니다.
-----------------------------------------------------
그게 아니라서
뺄 수 있는 데이터가 있는 경우는
최상위 위치의 데이터를 출력해준다음
삭제해준다는 의미로 0을 넣고
Top을 증가시켜 밑으로 한칸 내리면 됩니다.
-----------------------------------------------------
실행결과
Push 10 30 50 70 90 하면
Pop 90 70 50 30 10이 나오게 됩니다.
데이터가 들어간 역순으로 빠져나오는
Last In First Out 형태인
LIFO 형태의 배열 스택이 만들어 졌습니다.
-----------------------------------------------------
'자료구조' 카테고리의 다른 글
[자료구조] 6장. 연결 리스트 설명과 구현 (Linked List) (0) | 2020.04.10 |
---|---|
[자료구조] 5장. 원형 큐(Queue) 구현 (배열) (0) | 2020.04.09 |
[자료구조] 4장. 선형 큐(Queue) 구현 (배열) (0) | 2020.04.09 |
[자료구조] 3장. 큐(Queue) 설명 (0) | 2020.04.09 |
[자료구조] 1장. 스택(Stack) 설명 (0) | 2020.04.09 |