본문 바로가기
  • 소소한 개발자 이야기

Software/Data Structure3

스택(Stack) 구현하기 문제 이 문제에서는 스택을 구현한다. 스택은 다음 세 개의 연산을 지원한다. Push X : 스택에 정수 X를 push한다. 만약 스택이 꽉 차서 push를 할 수 없다면, “Overflow”를 출력한다. Pop : 스택에서 정수 하나를 pop한다. 만약 스택이 비어있어서 pop을 할 수 없다면, “Underflow”를 출력한다. Top : 스택의 top에 있는 정수를 출력한다. 만약 스택이 비어있다면 “NULL”을 출력한다. 크기가 n인 스택에 m개의 연산을 하는 프로그램을 작성하시오. 입력의 편의를 위해서 Push는 “1”, Pop은 “2”, Top은 “3”으로 표현한다. 입력 첫째 줄에 스택의 크기 n, 연산의 개수 m이 주어진다. ( 1 2020. 7. 10.
큐(queue) 구현하기 문제 이 문제에서는 큐를 구현한다. 큐는 다음 세 개의 연산을 지원한다. Push X : 큐에 정수 X를 push한다. 만약 rear 포인터가 더 이상 뒤로 갈 수 없다면, “Overflow”를 출력한다. Pop : 큐에서 정수 하나를 pop한다. 만약 front 포인터가 더 이상 뒤로 갈 수 없다면, “Underflow”를 출력한다. Front : 큐의 front에 있는 정수를 출력한다. 만약 큐가 비어있다면 “NULL”을 출력한다. 크기가 n인 배열로 만든 큐에 m개의 연산을 하는 프로그램을 작성하시오. 입력의 편의를 위해서 Push는 “1”, Pop은 “2”, Front는 “3”으로 표현한다. 입력 첫째 줄에 큐를 만들 수 있는 배열의 크기 n, 연산의 개수 m이 주어진다. ( 1 ≤ n ≤ 100.. 2020. 7. 10.
배열 기반 연결 리스트(Linked list) 배열 기반의 연결리스트입니다. 배열 기반의 연결리스트는 아래와 같은 특징이 있습니다. (1) 특정한 위치의 원소에 즉시 접근이 가능하다. (2) 메모리 할당 해야하는 단점이 있다. (3) 원하는 위치로의 삽입이나 삭제가 비효율적이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #include #define INF 10000 int arr[INF]; //메모리가 INF(10000)인 배열을 생성 int count = 0; void addBack(int data) { arr[count] = data; count++; } void addFirst(int data) {.. 2019. 12. 26.