일지
-
자료구조...67일지 2021. 3. 17. 12:29
이진 탐색 트리 삽입 메서드 구현 BinarySearchTree.cpp #pragma region 생성자 /// /// 비어있는 DoublyLinkedList를 생성한다. /// BinarySearchTree::BinarySearchTree() : m_count(0), m_max(0), m_min(0), m_root(nullptr), m_free(nullptr) { } /// /// 메모리 누수를 막기 위해 동적 생성한 노드들을 제거한다. /// BinarySearchTree::~BinarySearchTree() { Clear(); while (m_free != nullptr) { Node* curNode{ m_free }; m_free = m_free->m_right; delete curNode; } ..
-
자료구조...66일지 2021. 3. 16. 21:02
이진 탐색 트리 구현 준비 구현에 필요한 메서드 및 속성은 다음과 같다. 속성 Count BinarySearchTree에 포함된 데이터의 개수 Max BinarySearchTree에 추가된 데이터 중 가장 큰 값 Min BinarySearchTree에 추가된 데이터 중 가장 작은 값 메서드 Search(data) 데이터가 저장되어 있는지 여부 확인 Insert(data) BinarySearchTree의 규칙에 맞게 데이터를 저장 Delete(data) 일치하는 데이터를 제거하고 실행 결과를 반환 Clear() 저장되어 있는 모든 데이터 삭제 이진 탐색 트리 구현 연결 자료구조를 이용하여 이진 탐색 트리를 구현한다. BinarySearchTree.h #pragma once #include class Bin..
-
JUNGOL...49일지 2021. 3. 15. 12:40
Beginner_Coder/도형만들기2/문자마름모 문제 마름모의 한 변의 길이 N을 입력 받아 아래와 같이 문자 마름모를 출력하는 프로그램을 작성하시오. (1) 첫 번째 행의 중앙부터 출발하여 시계 반대 방향으로 'A' 부터 차례대로 채워나간다. ('Z'다음에는 다시 'A'가 된다.) (2) 바깥 부분이 다 채워지면 두 번째 행 중앙부터 다시 같은 작업을 반복한다. (3) 같은 방법으로 마름모를 다 채워지도록 하여 출력한다. 입력 형식 마름모의 한변의 길이 N(N의 범위는 100 이하의 양의 정수)을 입력받는다. 출력 형식 주어진 형태대로 한 변의 길이가 N인 문자 마름모를 출력한다. 문자 사이는 한 개의 공백으로 구분한다. 주의 : 출력 시 널 문자('NULL', '\0')는 출력 되지..
-
JUNGOL...48일지 2021. 3. 12. 10:36
Beginner_Coder/도형만들기2/파스칼삼각형 문제 파스칼 삼각형이란 아래 과 같은 자신의 왼쪽 위의 좌표와 오른쪽 위의 좌표 값을 더해서 값을 계속 갱신해 나가는 형태의 삼각형을 말한다. 아래와 같은 파스칼 삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 형태의 파스칼 삼각형을 출력하는 프로그램을 작성하시오. m에 대한 파스칼 삼각형의 모습은 아래 의 모습과 같다. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 4 6 4 1 1 3 3 1 1 2 1 1 1 1 1 4 1 6 3 1 4 3 2 1 1 1 1 1 1 종류1 종류2 종류3 입력 형식 삼각형의 높이n(1부터 30사이의 정수)과 종류m(1부터 3사이의 정수)을 입력받는다. 출력 형식 위에서 제시한 형태의 파스칼 삼각형을..
-
자료구조...65일지 2021. 3. 10. 11:07
이진 탐색 트리의 삭제 연산 삭제 연산의 경우 삭제되는 노드가 가진 자식의 수에 따라 연산이 달라지게 된다. 자식 노드가 없는 경우 대상 노드를 제거하고 연산을 종료한다. 자식 노드가 하나인 경우 대상 노드를 제거하고 자식 노드와 위치를 바꾼다. 자식 노드가 두 개인 경우 왼쪽 자식을 선택할지 오른쪽 자식을 선택할지에 따라 연산이 달라진다. 왼쪽 자식에게 계승하는 경우 대상 노드 삭제 후 왼쪽 서브 트리에서 가장 큰 값을 가진 노드와 위치를 바꾼다. 오른쪽 자식에게 계승하는 경우 대상 노드 삭제 후 오른쪽 서브 트리에서 가장 작은 값을 가진 노드와 위치를 바꾼다.
-
JUNGOL...47일지 2021. 3. 4. 12:06
Beginner_Coder/도형만들기2/숫자삼각형 문제 삼각형의 높이 n과 종류 m을 입력받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오. 종류 1번의 숫자의 진행 순서는 처음에 왼쪽에서 오른쪽으로 진행 한 후 방향을 바꾸어서 이를 반복한다. 1 3 2 4 5 6 10 9 8 7 11 12 13 14 15 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 4 1 1 2 1 2 3 1 2 1 종류1 종류2 종류3 입력 형식 삼각형의 크기 n(n의 범위는 100 이하의 홀수)과 종류 m(m은 1부터 3사이의 정수)을 입력받는다. 출력 형식 위에서 언급한 3가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다. 숫자사이는 공백으..
-
자료구조...64일지 2021. 3. 3. 08:30
삽입 연산 삽입하려는 원소가 이진 탐색 트리에 존재하는지 탐색한 뒤 존재하는 경우 연산을 종료하고 존재하지 않으면 해당 위치에 원소를 삽입하고 연산을 종료한다. 위와 같은 이진 탐색 트리에 4를 삽입하면 다음과 같은 과정을 통해 연산을 수행하게 된다. 노드의 값(8) > 찾으려는 값(4) 왼쪽 서브 트리로 이동하여 탐색 연산 진행 노드의 값(3) 찾으려는 값(4) 왼쪽 서브 트리로 이동하여 탐색 연산 진행 탐색 연산 실패 해당 위치에 4를 삽입하고 연산 종료 더보기 참고문헌 이지영.(2013.07.30).C로 배우는 쉬운 자료구조
-
자료구조...63일지 2021. 2. 23. 08:23
이진 탐색 트리 탐색을 위한 이진 트리로 데이터의 크기에 따라 노드의 위치를 결정하며 다음과 같이 정의한다. 모든 원소는 서로 다른 유일한 키를 갖는다. 왼쪽 서브 트리에 있는 원소의 키들은 그 루트의 키보다 작다. 오른쪽 서브 트리에 있는 원소의 키들은 그 루트의 키보다 크다. 왼쪽 서브 트리와 오른쪽 서브 트리도 이진 탐색 트리다. 이진 탐색 트리의 탐색 연산 값을 찾을 때에는 루트에서 시작해서 찾으려는 값을 비교하여 진행한다. 노드의 값 = 찾으려는 값 탐색 성공 노드의 값 > 찾으려는 값 왼쪽 서브 트리로 이동하여 탐색 연산 수행 노드의 값 < 찾으려는 값 오른쪽 서브 트리로 이동하여 탐색 연산 수행 참고문헌 참고문헌 이지영.(2013.07.30).C로 배우는 쉬운 자료구조