본문 바로가기

NOTE120

자료구조) Graph #include #include /* 인접 행렬을 이용한 그래프 추상 데이터 타입의 구현 */ #define MAX_VERTICES 50typedef struct GraphType{ int n; int adj_mat[MAX_VERTICES][MAX_VERTICES];}GraphType; //그래프 초기화void graph_init(GraphType *g){ int r, c; g->n = 0; for (r = 0; r n) + 1) > MAX_VERTICES) { fprintf(stderr, "그래프:정점의 개수 초과"); return; } g->n++;} //간선 삽입 연산void insert_edge(GraphType *g, int start, int end){ if (start >= g->n || e.. 2015. 8. 25.
자료구조) QuickSort #include #include #define SWAP(a,b) {int t; t = a; a = b; b = t;} void QuickSort(char *ar, int num){ int left, right; char key; //구간이 1이면정렬 끝 if (num = right) break; //좌우가 만나면 끝 SWAP(ar[left], ar[right]); } SWAP(ar[left], ar[num - 1]); //기준값과 i위치의 값 교환 QuickSort(ar, left); //왼쪽 구간 정렬 QuickSort(ar + left + 1, num - left - 1); //오른쪽 구간 정렬} void main(){ char str[] = "greathuman"; printf("정렬 전의 문자열 .. 2015. 8. 25.
자료구조) linked_queue #include #include typedef struct _node{ int data; struct _node *link;}_node; typedef struct _queue{ _node *front; _node *rear;}_queue; void init(_queue *q){ q->front = q->rear = NULL;} int is_empty(_queue *q){ return (q->front == NULL);} void enqueue(_queue *q, int data){ _node *temp; temp = (_node *)malloc(sizeof(_node)); temp->data = data; temp->link = NULL; if (is_empty(q)) { q->front = temp;.. 2015. 8. 25.
자료구조) linked_stack #include #include typedef struct _node{ int data; struct _node *link;}_node; typedef struct _stack{ _node *top;}_stack; void init(_stack *s){ s->top = NULL;} int is_empty(_stack *s){ return (s->top == NULL);} void push(_stack *s, int data){ _node *temp; temp = (_node *)malloc(sizeof(_node)); temp->data = data; temp->link = s->top; s->top = temp;} int pop(_stack *s){ int item; if (is_empty(s)) { .. 2015. 8. 25.
dovelet) maze 최단 거리 미로 #include #pragma warning(disable:4996) char map[100][100];int visited[100][100];int len = 1000;int n, m; void maze(int x, int y, int min){ map[x][y] = '1'; if (x == 0 && y == m - 1) { if (len > min) len = min; } if (map[x - 1][y] == '0') { maze(x - 1, y, min + 1); } if (map[x + 1][y] == '0') { maze(x + 1, y, min + 1); } if (map[x][y + 1] == '0') { maze(x, y + 1, min + 1); } if (map[x][y - 1] == .. 2015. 8. 25.
uva_10074) Take the Land #include using namespace std; int n, m;int map[105][105]; int gg(int a, int b, int count){ if (b > testcase; while (testcase--) { cin >> n >> m; for (int i = 0; i num; if (num == 0) map[i][j] = 1; else map[i][j] = 2; } } int garo; int sero; int mul = 0; int max = 0; for (int i = 0; i 2015. 8. 21.