본문 바로가기
반응형

프로그래머의 길/알고리즘22

원형 큐 구현 소스 #include #define MAX 10 int queue[MAX]; int front, rear; void init_queue(void) { front = rear = 0; } void clear_queue(void) { front = rear; } int put(int k) { if((rear+1)%MAX == front) { printf("\n Queue overflow."); return -1; } queue[rear] = k; rear = ++rear%MAX; return k; } int get(void) { int i; if(front == rear) { printf("\n Queue underflow."); return -1; } i=queue[front]; front = ++front%M.. 2007. 3. 29.
스택 예제 소스 숫자 저장 스택 #include #define MAX 10 int stack[MAX]; int top; void init_stack(void) { top = -1; } int push(int t) { if (top >= MAX-1) { printf("\n Stack overflow."); return -1; } stack[++top] = t; return t; } int pop(void) { if(top Bottom\n"); for(i=top; i>.. 2007. 3. 29.
스택과 큐, 데크 스택과 큐, 데크 3.1 스택(Stack) • 삽입과 삭제가 한쪽 끝에서만 발생하는 선형 리스트 • top(stack pointer) 포인터 : 자료의 삽입과 삭제가 발행하는 부분 → top 포인터는 항상 제일 위에 있는 자료를 가리킴 • BOTTOM(밑바닥) 포인터 : 막혀있는 다른 한쪽 끝 • PUSH :자료를 삽입하는 연산, POP : 자료를 삭제하는 연산, TOP 연산 : 현재top 포인터가 가리키는 자료의 내용을 조사하는 연산 • 자료의 삽입: top 포인터가 가리키는 위치보다 1이 증가한 위치에 → top = top + 1 • 자료의 삭제: top 포인터가 가리키는 위치의 자료가 → top = top - 1 • top의 초기치는 -1이다 그림 3.1 스택의 구조 • 입출력 정책(policy):.. 2007. 3. 29.
이중 연결 리스트로 구현한 텍스트 뷰어 #include #include #include #include #include #define PGUP 0x4800 #define PGDN 0x5000 #define ESC 27 #define PAGESIZE 25 // 한 페이지에 보여질 줄 수 typedef struct list *linked_list; struct list { char *buf; linked_list prev; // 이전 포인터 linked_list next; // 다음 포인터 }; linked_list head, tail; // 시작과 끝 노드 int total, now; // 전체 노드와 현재 노드 char filename[13]; void gotoxy(int, int); void init_linked_list(void) { he.. 2007. 3. 28.
반응형