간격 트리는 간격을 유지하기 위한 정렬된 트리 데이터 구조입니다. 특히 주어진 간격이나 지점과 겹치는 모든 간격을 효율적으로 찾을 수 있습니다. 다음은 인터벌 트리를 구현하는 C++ 프로그램입니다. 알고리즘 Begin function insert() is used to insert new nodes into the tree: If Tree is empty, new node becomes root. Get low
이진 검색 트리는 모든 노드가 다음과 같은 몇 가지 속성을 갖는 정렬된 이진 트리입니다 - 노드의 오른쪽 하위 트리에는 상위 노드의 키보다 큰 키가 있습니다. 노드의 왼쪽 하위 트리에는 상위 노드의 키보다 작거나 같은 키가 있습니다. 각 노드는 2개 이하의 하위 노드를 가질 수 없습니다. 다음은 무작위 이진 검색 트리를 구현하는 C++ 프로그램입니다. 알고리즘 Begin class BST to declare following functions: search() = T
AVL 트리는 모든 노드에 대해 왼쪽 및 오른쪽 하위 트리의 높이 차이가 1보다 클 수 없는 자체 균형 이진 검색 트리입니다. 자체 균형 이진 검색 트리를 구현하는 C++ 프로그램입니다. Begin class avl_tree to declare following functions: balance() = Balance the tree by getting balance factor. Put the difference in bal_factor. If bal_factor > 1 then balance the
스플레이 트리를 구현하기 위한 C++ 프로그램입니다. 수업 설명: Begin class SplayTree has the functions: Create a function Splay() to implement top-down splay tree. Here head.rch points to the Left tree and head.lch points to the right tree. Create a
seekg()는 파일에서 임의의 위치를 찾을 수 있게 해주는 iostream 라이브러리의 함수입니다. 주로 C++ 파일 처리에서 주어진 파일의 입력 스트림에서 추출할 다음 문자의 위치를 설정하는 데 사용됩니다. 구문 istream&seekg(streamoff offset, ios_base::seekdir dir); istream&seekg(streampos position); Where, position: It is the new position in the stream buffer. offset: It is
C++에서 예외 처리는 런타임 오류를 처리하는 프로세스입니다. 예외는 C++에서 런타임에 throw되는 이벤트입니다. 모든 예외는 std::exception 클래스에서 파생됩니다. 처리할 수 있는 런타임 오류입니다. 예외를 처리하지 않으면 예외 메시지를 출력하고 프로그램을 종료합니다. 예외는 C++ 표준에서 프로그램 내에서 사용할 수 있는 클래스로 정의됩니다. 부모-자식 클래스 계층 구조의 배열은 다음과 같습니다. C++의 일반적인 예외 클래스는 다음과 같습니다. 예외 설명 std::예외 이것은 모든 표준 C++ 예외의
C++와 Java의 예외 처리에는 주요 차이점이 있습니다. 자바에서 예외 처리 C++에서 예외 처리 던질 수 있는 객체만 객체로 던질 수 있습니다. 모든 유형은 예외로 처리될 수 있습니다. 자바에서 finally는 정리를 위해 try catch 블록 후에 실행되는 블록입니다. C++에는 finally 블록이 없습니다 새 키워드 throw는 함수에서 throw된 예외를 나열하는 데 사용됩니다. Throw 키워드는 함수에서 발생한 예외를 나열하는 데 사용됩니다. 선택된 예외와 선택되지 않은 예외가 모두 있습니다. 확인되지 않은
Set을 사용하여 Dijkstra의 알고리즘을 구현하는 C++ 프로그램입니다. 여기에 두 세트가 필요합니다. 주어진 소스 노드를 루트로 사용하여 최단 경로 트리를 생성합니다. 한 세트는 최단 경로 트리에 포함된 정점을 포함하고 다른 세트는 최단 경로 트리에 아직 포함되지 않은 정점을 포함합니다. 모든 단계에서 다른 세트(아직 포함되지 않은 세트)에 있고 소스로부터 최소 거리를 갖는 정점을 찾습니다. 알고리즘: Begin function dijkstra() to find minimum distance: &nbs
다음은 욕심 많은 색칠을 수행하는 C++ 프로그램입니다. 알고리즘: Begin Take the number of vertices and edges as input. Create function greedyColoring() to assign color to vertices: A) Assign the first color to first vertex. B) Initialize the remaining vertices.
두 정점 사이의 최단 부분집합 경로 또는 최대 흐름을 의미하는 Edge Disjoint Path의 최대 수를 찾는 C++ 프로그램입니다. 알고리즘: Begin function bfs() returns true if there is path from source s to sink t in the residual graph which indicates additional possible flow in the graph. End Begin fun
이진 검색 트리는 모든 노드가 다음 속성을 갖는 정렬된 이진 트리입니다. 노드의 오른쪽 하위 트리에는 상위 노드의 키보다 큰 키가 있습니다. 노드의 왼쪽 하위 트리에는 상위 노드의 키보다 작은 키가 있습니다. 모든 키 값은 고유합니다. 각 노드는 2개 이상의 자식을 가질 수 없습니다. 수업 설명: Begin class BST to declare following functions: search() = To search an item in BST.
Ford Fulkerson 알고리즘을 사용하여 Network_Flow 문제를 구현하는 C++ 프로그램입니다. 알고리즘: Begin function bfs() returns true if there is path from source s to sink t in the residual graph which indicates additional possible flow in the graph. End Begin function fordfulkarson() return
소스와 싱크 정점 사이의 최대 흐름을 계산하기 위해 Edmonds-Karp 알고리즘을 구현하는 C++ 프로그램입니다. 알고리즘: Begin function edmondsKarp() : initiate flow as 0. If there is an augmenting path from source to sink, add the path to flow. Return flow. End 예시 코드 #inc
다음은 1차원 개체와 M개의 빈에 대한 First Fit Deccreasing을 구현하는 C++ 프로그램입니다. 필수 함수 및 의사 코드: Begin function binPack() returns number of bins required. Initialize binC = 0 Initialize an array to store binVal. Place items one by one. function sort() to
히스토그램에서 가장 큰 직사각형 영역을 찾는 C++ 프로그램입니다. 알고리즘 함수 getArea(): Begin Create an empty stack. Initialize the largest_area. Do a while loop start from first bar for every bar hist[i], where i = 0 to less than n: If stack is empty or his
이 섹션에서는 C++ 문자열(std::string)을 LPCSTR로 변환하는 방법을 볼 것입니다. LPCSTR은 (상수 STRing에 대한 긴 포인터)입니다. 기본적으로 C와 같은 문자열입니다. 따라서 문자열을 문자 배열로 변환하여 LPCSTR을 얻을 수 있습니다. 이 LPCSTR은 Microsoft에서 정의한 것입니다. 따라서 이를 사용하려면 Windows.h 헤더 파일을 프로그램에 포함해야 합니다. std::string을 string처럼 C로 변환하려면 c_str()이라는 함수를 사용할 수 있습니다. 예시 코드 #include
이 섹션에서는 C++ 와이드 문자열(std::wstring)을 LPCWSTR로 변환하는 방법을 볼 것입니다. LPCWSTR은 (Constant Wide STRing에 대한 긴 포인터)입니다. 기본적으로 와이드 문자가 포함된 문자열입니다. 따라서 와이드 문자열을 와이드 문자 배열로 변환하여 LPCWSTR을 얻을 수 있습니다. 이 LPCWSTR은 Microsoft에서 정의한 것입니다. 따라서 이를 사용하려면 Windows.h 헤더 파일을 프로그램에 포함해야 합니다. std::wstring을 와이드 문자 배열 유형 문자열로 변환하려면
이 섹션에서는 C에서 문자열 헤더 파일과 루프를 사용하지 않고 문자열의 길이를 찾는 방법을 볼 것입니다. 문자열 길이 찾기 문제는 string.h 없이 매우 쉽게 해결할 수 있습니다. 재귀 함수를 사용하여 이를 수행할 수 있습니다. 그러나 이 예에서는 재귀를 사용하지 않습니다. 우리는 그것을 하기 위해 또 다른 트릭을 사용하고 있습니다. 우리는 길이를 얻기 위해 printf() 함수를 사용하고 있습니다. printf() 함수는 인쇄한 문자 수를 반환합니다. printf() 함수를 사용하여 해당 문자열만 인쇄하면 길이를 쉽게 얻을
이 섹션에서는 C에서 Stringize 연산자와 토큰 붙여넣기 연산자가 무엇인지 볼 것입니다. Stringize 연산자는 전처리기 연산자입니다. 토큰을 문자열로 변환하기 위해 컴파일러에 명령을 보냅니다. 매크로 정의에서 이 연산자를 사용합니다. stringize 연산자를 사용하면 따옴표를 사용하지 않고 일부 텍스트를 문자열로 변환할 수 있습니다. 예시 코드 #include<stdio.h> #define STR_PRINT(x) #x main() { printf(STR_PRINT(This is a s
이 섹션에서는 C++에서 Decimal을 Hexadecimal 문자열로 변환하는 방법과 Hexadecimal 문자열에서 Decimal 문자열로 변환하는 방법을 살펴보겠습니다. 이 변환을 위해 우리는 C++의 stringstream 기능을 사용하고 있습니다. 문자열 스트림은 형식 지정, 구문 분석, 문자열을 숫자 값으로 변환 등에 사용됩니다. Hex는 IO 조작기입니다. IO 스트림을 매개변수로 참조하고 조작한 후 문자열에 대한 참조를 반환합니다. 다음 예에서는 10진수 또는 16진수를 변환하는 방법을 볼 것입니다. 예시 코드 #