[덱의 개념] - 스택과 큐의 특성의 조합한 형태로서 데이터를 앞으로도 뒤로도 넣을 수 있고, 앞으로도 뒤로 뺄 수 있는 자료구조 [덱의 ADT] void DequeInit(Deque * pdeq);- 덱의 초기화를 진행- 덱 생성 후 제일 먼저 호출되어야 하는 함수 int DQIsEmpty(Deque * pdeq);- 덱이 빈 경우 TRUE(1)을 반환, 그렇지 않은 경우 FALSE(0)을 반환 void DQAddFirst(Deque * pdeq, int data);- 덱의 '머리'에 데이터를 저장. data로 전달된 값을 저장 void DQAddLast(Deque * pdeq, int data);- 덱의 '꼬리'에 데이터를 저장. data로 전달된 값을 저장 int DQRemoveFirst(Deque..
[주제] - 주문한 음식이 포장되어 나오기를 기다리는 고객을 위한 대기실을 만드려고 함 [조건] - 운영 시간은 1시간- 고객의 첫 주문 이후 15초당 다음 1명씩 주문- 고객은 총 3가지 햄버거 중 무작위로 1개만 주문가능- 햄버거 조리 시간(치즈버거 12초, 불고기버거 15초, 더블버거 24초)- 한 번에 하나의 햄버거만 조리가능- 조리가 끝나기 전까지 다음 주문을 받지 않음- 주문 처리가 된 고객은 대기실에서 나옴 [목표] - 1시간 동안 여러 종류의 햄버거를 요리하는 상황에서 고객을 대기시킬 수 있는 대기실의 크기를 산출하기 위하여 크기에 따라 얼마나 안정적으로 수용할 수 있는지 확률적으로 나타내기 ※ 예) 수용인원이 30명인 공간: 안정적으로 고객을 수용할 확률은 50%(시뮬 10회 시도 시 5..
[연결 리스트 기반 스택과 큐의 차이점] - 스택은 'push'와 'pop'이 같은 위치에서 처리가 되는 반면, 큐는 'enqueue'와 'dequeue'가 다른 위치에서 처리가 됨 [소스 코딩] ■ ListBaseQueue.h #ifndef LISTBASEQUEUE_H_#define LISTBASEQUEUE_H_ #define TRUE 1#define FALSE 0 typedef struct _node{ int data; struct _node * next;} Node; typedef struct _lQueue{ Node * front; // 삭제할 노드를 가리키는 용도 Node * rear; // 생성된 노드를 가리키는 용도} LQueue; typedef LQueue Queue; void QueueI..
[소스 코딩] ■ CircularQueue.h #ifndef CIRCULARQUEUE_H_#define CIRCULARQUEUE_H_ #define TRUE 1#define FALSE 0 #define QUE_LEN 100 typedef struct _cQueue{ int front; // 삭제할 데이터의 위치를 가리키는 변수 int rear; // 삽입할 데이터의 위치를 가리키는 변수 int queArr[QUE_LEN]; // QUE_LEN 길이를 갖는 큐 배열} CQueue; typedef CQueue Queue; void QueueInit(Queue * pq); // 큐 초기화 함수int QIsEmpty(Queue * pq); // 큐에 데이터가 존재하는지 확인하는 함수 void Enqueue(Qu..
[enqueue의 연산방식] ※ F(Front): 큐의 앞(출구)을 가리키는 포인터 변수※ R(Rear): 큐의 뒤(입구)를 가리키는 포인터 변수 - enqueue 연산 시 R이 배열의 다음 칸을 가리키고 그 자리에 새로 입력된 데이터를 저장- 첫 데이터가 저장될 때는 F와 R이 같은 위치를 가리킴 [dequeue] ■ 보편적인 배열의 삭제방식 - dequeue 연산 시 반환할 데이터를 배열의 맨 앞부분으로 이동 시키는 방식- F의 위치는 고정된 채로 데이터가 이동하기 때문에 F가 불필요- dequeue 연산 시마다 저장된 데이터를 한 칸씩 이동시켜야 하는 단점이 존재 ★ ■ 일반적인 방식 - F를 R처럼 한 칸씩 오른쪽으로 이동하면서 데이터를 삭제- 데이터의 위치를 옮길 필요없음 ■ 문제가 되는 상황 ..
[큐의 개념]- 먼저 저장된 데이터가 먼저 나오는 선입선출(FIFO. First-In, First-Out) 구조의 자료구조 [큐의 ADT]void QueueInit(Queue * pq);- 큐의 초기화를 진행- 큐 생성 후 제일 먼저 호출되어야 하는 함수 int QIsEmpty(Queue * pq);- 큐가 빈 경우 TRUE(1)을, 그렇지 않은 경우 FALSE(0)을 반환 void Enqueue(Queue * pq, Data data);- 큐에 데이터를 저장. 매개변수 data로 전달된 값을 저장 Data Dequeue(Queue * pq);- 저장순서가 가장 앞선 데이터를 삭제- 삭제된 데이터는 반환- 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장되어야 함 Data QPeek(Queue..
- Total
- Today
- Yesterday
- wfd
- Reference
- 정렬
- SysUtils
- 작문
- 영어
- ADODB
- 교육센터
- Pte
- 응용
- 대상
- System
- 스택
- 여행영어 100일의 기적
- tdataset
- 계산기
- 말하기
- SWT
- 독해
- VCL
- java
- RA
- 문법
- 자료구조
- 알고리즘
- Delphi
- 왕초보 영어회화 100일의 기적
- 설명
- 일기
- 상황
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |