기초/자료구조
2022.04.05
#include #include // ===== 원형큐 코드 시작 ===== #define MAX_QUEUE_SIZE 5 typedef int element; typedef struct{// 큐 타입 element data[MAX_QUEUE_SIZE]; int front, rear; } QueueType; // 오류함수 void error(char *message) { fpritntf(stderr, "%s\n", message); } void init_queue(QueueType *q) { q->front = q->rear = 0; } // 공백상태 검출 int is_empty(QueueType *q) {*q-> return (q->front == q->rear); } // 포화상태 검출 int is_f..
기초/자료구조
2022.04.05
#include #include #define MAX_QUEUE_SIZE 5 typedef int element; typedef struct {// 큐 타입 int front; int rear; element data[MAX_QUEUE_sIZE]; } QueueType; void error(char *message) { fprintf(stderr, "%s\n", message); exit(1); } void init_queue(QueueType *q) { q->rear = -1; q->front = -1; } void queue_print(QueueType *q) { for(int i=0 ; irear) printf(" | "); else printf("%d | ",q->data[i]); } printf..
기초/자료구조
2022.04.03
#include #include #include #define MAZE_SIZE 6 /* 스택 구현 부분 */ typedef int elemnt; typedef struct{ short r; short c; } element; void init_stack(StackType *s) { s->top = -1; } //공백상태 검사 int is_empty(StackType *s) { return (s->top==-1); } //포화상태 검사 int is_full(StackType *s) { return (s->top == (MAX_STACK_SIZE - 1)); } //삽입 void push(StackType *s, element item) { if(is_full(s)){ fprintf(stderr, "스택 ..
기초/자료구조
2022.04.03
#include #include #include #define MAX_STACK_SIZE 100 /* 스택 구현 부분 */ typedef char element;//------------->char형으로 구현 typedef struct{ element data[MAX_STACK_SIZE]; int top; } StackType; void init_stack(StackType *s) { s->top = -1; } //공백상태 검사 int is_empty(StackType *s) { return (s->top==-1); } //포화상태 검사 int is_full(StackType *s) { return (s->top == (MAX_STACK_SIZE - 1)); } //삽입 void push(StackTyp..
기초/자료구조
2022.04.03
#include #include #define MAX_STACK_SIZE 100 typedef int element typedef struct { element *data;// data는 포인터로 정의된다. int capacity;// 현재 크기 int top; } StackType; void init_stack(StackType *s) { s->top = -1; s->capacity = 1; s->data = (element *)malloc(s->capacity * sizeof(elemnt)); } //공백상태 검출 int is_empty(StackType *s) { return (s->top == -1); } //포화상태 검출 int is_full(StackType *s) { return (s->to..
기초/자료구조
2022.04.03
#include #include #define MAX_STACK_SIZE 100 #define MAX_STRING 100 /* 스택에 저장되는 데이터를 구조체로 정의 */ typedef struct { int student_no; char name[MAX_STRING]; char address[MAX_STRING]; } element; element stack[MAX_STACK_SIZE]; int top=-1; //공백상태 검출 int is_empty() { return (top == -1); } //포화상태 검출 int is_full() { return (top == (MAX_STACK_SIZE - 1)); } //삽입 void push(element item) { if(is_full()){ fprin..
기초/자료구조
2022.04.03
#include #include /* 스택이 전역 변수로 구현되는 부분 */ #define MAX_STACK_SIZE 100// 스택의 최대 크기 typedef int element;// 데이터의 자료형 element stack[MAX_STACK_SIZE];// 1차원 배열 int top=-1; //공백상태 검사 int is_empty() { return (top==-1); } //포화상태 검사 int is_full() { return (top==(MAX_STACK_SIZE-1)); } //삽입 void push(element item) { if(is_full()){ fprintf(stderr, "스택 포화 에러\n"); return; } else stack[++top]=item; } //삭제 eleme..
기초/자료구조
2022.04.03
#include void hanoi_tower(int n, char from, char tmp, char to) { if( n==1 ) printf("원판 1을 %c에서 %c으로 옮긴다.\n", from, to); else { hanoi_tower( n-1, from, to, tmp ); printf("원판 %d을 %c에서 %c으로 옮긴다.\n", n, from, to); hanoi_tower( n-1, tmp, from, to ); } } int main(void) { hanoi_tower(4, 'A', 'B', 'C'); return 0; } * 실행결과 * 원판 1을 A에서 B으로 옮긴다. 원판 2을 A에서 C으로 옮긴다. 원판 1을 B에서 C으로 옮긴다. 원판 3을 A에서 B으로 옮긴다. 원판 1..
기초/자료구조
2022.04.01
int fib(int n) { if(n==0) return 0; if(n==1) return 1; return ( fib(n-1) + fib(n-2) ); } * 시간복잡도 * O( 2**n ) 피보나치(순환)은 반복보다 빠르다 ★최종정리★ 시간복잡도 반복 순환 팩토리얼 O( n ) O( n ) 거듭제곱 O( n ) O( log n ) 피보나치 O( n ) O( 2**n )
기초/자료구조
2022.04.01
int fib_iter(int n) { if(n==0) return 0; if(n==1) return 1; int pp=0; int p=1; int result=0; for(int i=2 ; i