본문 바로가기
반응형

프로그래머의 길157

이진 트리로 구현한 문자열, 숫자 정렬 소스 문자열 정렬 #include #include #include struct tree { char info[20]; int cnt; struct tree * left,*right; }*root; FILE *in,*out; void insert(char *); void inorder(struct tree *); void main(){ char value[20]; in =fopen("word.dat","r"); out = fopen("freq.out","w"); while(fscanf(in,"%s",value),(strcmp(value,"/*")!=0)) insert(value); fprintf(out,"\tWords\t\t\tFrequencies\n"); inorder(root); fclose(in); fcl.. 2007. 3. 30.
후위식 계산기 #include #include #include #define MAX 100 int integer(char *); void push(int); int pop(); int *ptr, *top, *bottom; void main() { int op1, op2; char str[81]; // int *i; ptr = (int *)malloc(MAX*sizeof(int)); top = ptr; bottom = ptr+MAX-1; // printf("%d ", top); // printf("%d", bottom); printf("후위식 입력 : "); do { scanf("%s", str); switch(*str) { case '+': op2 = pop(); op1 = pop(); push(op1 + op2); .. 2007. 3. 30.
원형 큐 구현 소스 #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 포인터가 가리키는 위치의 자료가              →    t.. 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.
반응형