본문 바로가기

전체

[알고리즘] 기본 추상자료형(9) - 예제(트리ADT) [문제1] 트리의 순회(선위순회, 중위순회, 후위순회) - 다음과 같이 트리를 구현 - 없는 노드번호를 입력받는다면, -1출력 - 선위순회는 1, 중위순회는 2, 후위순회는 3 - id를 입력받아서 그 노드부터 순회를 하여 출력 입력예시 출력예시1 2 30 70 90 입력예시 출력예시2 3 50 130 120 80 입력예시 출력예시1 9 -1 #include #include struct node { int id; int data; struct node *left; struct node *right; }; void addLeftchild(struct node *parent, int value, int id){ struct node *newnode = (struct node*)malloc(sizeof(str..
[알고리즘] 기본 추상자료형(8) - 예제(트리ADT) [문제1] 연결리스트를 이용한 트리 구현 - 노드번호를 받아서, 그 노드와 자식노드가 있다면 출력(없으면 미출력) - 없는 노드번호를 입력받는다면, -1출력 - 트리구조 입력예시 출력예시 230 70 90 입력예시 출력예시 3 50 120 입력예시 출력예시 9 -1 #include #include struct node { int data; struct node *left; struct node *right; }; void addLeftchild(struct node *parent, int value){ struct node *newnode = (struct node*)malloc(sizeof(struct node)); newnode->data = value; newnode->left = NULL; new..
[알고리즘] 기본 추상자료형(7) - 설명(트리ADT, 이진트리ADT) 트리ADT는 어떤 단체의 조직구성이나 동식물의 분류체계처럼 맨 위의 대표적 체계(트리)로 시작하여 아래 방향의 가지치기로 표현되는 계층구조를 트리(tree)라고 한다 트리의 용어 루트 - 트리의 맨 위의 부모가 없는 노드 내부노드 - 적어도 한개의 자식을 가진 노드 외부노드 - 자식이 없는 노드 형제 - 같은 부모를 가진 노드 부트리 - 더 작은 트리 경로 - 조상 또는 자손을 따라 이어진 길을 말한다 EX) ABE / ABFK 등등 경로길이 - 경로내 간선의 수를 말한다. EX) ABE(2) / ABFK(3) 깊이 - 루트로부터 그 노드에 이르는 유일한 경로의 길이 EX) J의 깊이 - 3 높이 - 그 노드로부터 외부노드에 이르는 가장 긴 경로의 길이 EX) B의 높이 - 2 트리ADT메소드 1) 일반..
[Android] 구글 로그인 연동 코드/ Firebase 일단 시작하려하면, 안드로이드 프로젝트를 만들고. Firebase에서 프로젝트를 추가해야합니다 Android패키지이름은 안드로이드 프로젝트에 아래부분을 복사해서 붙여넣어주세요!! 이후에 구성파일 다운로드는 그대로 따라하시면됩니다!! 만약에 왼쪽에 파일들이 나와있는 구조가 달라서 찾지 못하시겠다면, 위에 있는 사진처럼, 안드로이드 누르셔서 프로젝트 누르시면 됩니다 Firebase SDK추가는 그대로 따라하시면 되지만, 버전이 다르기때문에 약간 바꿔주셔야합니다. 아래에 코드 그대로 올리겠습니다 build.gradle(Project) // Top-level build file where you can add configuration options common to all sub-projects/modules...
[알고리즘] 기본 추상자료형(6) - 예제(큐ADT/데크ADT) [문제1] 배열로 만들어진 원형큐에서 삽입, 삭제하는 프로그램 - front, rear, 배열의 초기값은 0 - front == rear이면 공백상태, front + 1 == rear이면 포화상태 - overflow의 경우 배열에 있는 모든값들을 출력 후 프로그램종료 / underflow의 경우 프로그램종료 - I value : 원형큐에 value를 삽입 - D : 원형큐에 원소삭제, 값0으로 바꿈 - P : 배열에 있는 모든 값을 출력 입력예시 출력예시6 10 I 10 I 20 P I 30 I 40 D P I 50 I 60 I 70 0 10 20 0 0 0 0 0 20 30 40 0 overflow 60 0 20 30 40 50 #include #include int *queue, queueSize, ..
[알고리즘] 기본 추상자료형(5) - 예제(스택ADT) [문제1] 스택을 이용하여 중위수식을 후위수식으로 변환하는 프로그램 - 피연산자는 영문자로 나타내고, 수식의 최대길이는 100 입력토큰연산자 우선순위 ! +(부호) -(부호) 단항연산자 6 * / 곱셈, 나눗셈 5 + - 덧셈, 뺄셈 4 > F) AB*C+DE+F*+ AB/C-DE*+FG*- AB&&C||EF>!|| #include #include #include int stackSize, top, sign; void push(char *stack, char value) { stack[++(top)] = value; } char pop(char *stack) { return stack[(top)--]; } int operand(char *inArray, int i){ if ((top != i) && (i..
[알고리즘] 기본 추상자료형(4) - 예제(스택ADT) [문제1] 스택ADT를 배열로 구현하고 테스트하는 프로그램 - push(stack, value) : stack의 top에 데이터를 추가한다 - pop(stack) : stack의 top에 있는 데이터를 반환하고 stack에서 제거한다 - peek(stack) : stack의 top에 있는 데이터를 화면에 출력한다 - duplicate(stack) : stack의 top에 있는 데이터를 pop해서 두번 push한다 - upRotate(stack, number) : stack의 맨 위의 number개의 데이터를 회전시킨다. 예를들어 n이 5이면 top에서 1,2,3,4,5로 저장되어 있다면 2,3,4,5,1로 변경 - downRotate(stack, number) : stack의 맨 위의 number개의 데..
[알고리즘] 기본 추상자료형(3) - 설명(스택ADT, 큐ADT) 스택ADT는 후입선출(마지막에 들어간것이 가장 먼저 나온다)-LIFO(Last-In First-Out)순서를 따르는 데이터구조로, top이라 불리는 위치에서 삽입과 삭제가 행해진다 스택ADT메소드 1) 주요메소드 push(e) - 원소e를 삽입 element pop() - 가장 나중에 삽입된 원소를 삭제하여 반환 2) 보조메소드 element top() - 가장 나중에 삽입된 원소를 삭제하지 않고 반환 integer size() - 스택에 저장된 원소의 수를 반환 boolean isEmpty() - 스택이 비어 있는지 여부를 반환 iterator elements() - 스택 원소 전체를 반환 3) 예외메소드 emptyStackException() - 비어 있는 스택에 대해 pop이나 top을 시도할 경우..