목록C,C++ 기초 및 자료구조 (27)
rueki
순차탐색 : 특정한 원소를 찾기 위해 순차적으로 하나씩 탐색하는 방법 #define _CRT_SECURE_NO_WARNONGS #include #include #include #define LENGTH 100 char **array; int founded; // 특정원소 발견 관련 변수 int main(void) { char *word; word = malloc(sizeof(char) * LENGTH); // 찾을 단어에 대해 공간 할당 scanf("%d %s", &n , word); // 전체 데이터 개수, 문자개수 array = (char**) malloc(sizeof(char*) * n); for (int i =0;itarget) retrun search(start, mid-1, target) el..
상속 (inheritance) 객체지향 프로그래밍의 중요한 특성 중 하나이다. 자식 클래스가 부모 클래스의 속성을 물려받아서 사용할 수 있음에 따라 소스코드의 재사용성을 늘릴 수 있다. 부모 클래스의 모든 속성을 물려받고, : 를 이용해서 연결할 수 있다. #include using namespace std; // 부모클래스 class Person{ private: string name; public: Person(string name) : name(name){} string getName(){ return name; } void showName(){ cout
우선순위를 가진 데이터들을 저장하는 큐를 의미한다. 데이터 꺼낼 때 우선순위가 높은 데이터가 가장 먼저 나온다. 큐는 선형적인 형태를 가지지만, 우선순위 큐는 트리 구조로 보아야하며, 최대 힙을 이용해 구현한다. 최대힙 : 부모 노드가 자식노드보다 값이 큰 완전 이진 트리 루트 노드는 전체트리에서 가장 큰 값을 가지게 된다. 전체트리가 항상 최대힙 구조를 유지하도록 해야 우선순위 큐라고 말할 수 있다. 1. 삽입할 원소는 완전 이진트리를 유지하는 형태로 순차적으로 삽입된다. 2. 삽입 이후, 루트노드까지 거슬러 올라가며 최대힙을 구성한다. -> logN의 시간복잡도를 가지게된다. 3. 삭제할 때 루트노드를 삭제하고, 마지막 원소를 루트 노드의 위치로 옮겨준다. 4. 삭제 후, 리프노드까지 내려가면서 최대..
생성자(Constructor) 객체를 생성함과 동시에 멤버 변수를 초기화 할 수가 있다. 클래스의 이름과 동일한 이름의 메소드로 구현된다. return 값이 없음. 여러 번 정의되어 다양한 방법으로 객체를 초기화 할 수 있음. 생성자를 별도로 구현하지 않으면 기본 생성자가 사용된다. 매개변수를 가지지 않으며 멤버변수는 0, Null 등의 값으로 초기화가 된다. class Character{ private: string name; int ragePoint; int hp; int damage; public: // 클래스와 동일한 명, 이름, 체력, 데미지값은 함수 파라메터로 받는다. Character(string name, int hp, int damage){ this->name = name; this->r..