자료구조/스택

    스택 (연결리스트로 구현)

    '백준 10828번: 스택' 문제를 베이스로 둔 배열로 구현한 스택의 코드다. size() 함수는 구현이 가능한지 몰라서 일단 알아오고 다시 수정하겠다..ㅠ 수정해본 결과 내가 원하는 size() 함수는 아니지만 전역 변수로 stacksize를 두고 push함수의 호출에 stacksize가 1 증가하고, pop함수의 호출에 1 감소하는 형태로 구현하긴 했다. 이 방법 말고도 다른 구현 방법을 생각해봤는데, 그것은 노드의 개수를 세는 방법이다. 이 방법으로 코드를 짜기에는 필자가 생각하기에 이미 짜 놓았던 코드의 형식과 어우르지 못해서 아예 새로운 스택의 연결리스트 구현 코드를 짜야한다. 그래서... 다시 도전해보겠다...ㅠㅠ 에잉 모르겠다 포기 연결리스트 스택은 구조체와 기본 배열로 구현한 스택과 달리 ..

    스택 (구조체로 구현)

    '백준 10828번: 스택' 문제를 베이스로 둔 구조체로 구현한 스택의 코드다. //스택을 구조체로 구현하기 //push X: 정수 X를 스택에 넣는 연산이다. //pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. //size: 스택에 들어있는 정수의 개수를 출력한다. //full: 스택이 꽉 찼으면 1, 아니면 0을 출력한다. //empty: 스택이 비어있으면 1, 아니면 0을 출력한다. //top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. #include #include #define MAX 100000 typedef struct Stack{ int arr[MAX..

    스택 (배열로 구현)

    '백준 10828번: 스택' 문제를 베이스로 둔 배열로 구현한 스택의 코드다. 저 문제에서 사실 거의 복붙한거나 다름없지만 full함수를 추가하고 미세한 설명을 추가했다. 역시나 enum은 여기서 쓰면 오히려 가독성이 떨어지는 것 같아서 뺐다. 문제를 위주로 코드를 짜는게 아니라 구현 자체를 목적으로 코드를 짰으면 enum을 넣는게 좋을 것 같다. //스택을 배열로 구현하기 //push X: 정수 X를 스택에 넣는 연산이다. //pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. //size: 스택에 들어있는 정수의 개수를 출력한다. //full: 스택이 꽉 찼으면 1, 아니면 0을 출력한다. //empty: 스택이 비어있으면 ..