반응형

Programing 146

Topological sort 알고리즘

/* * http://sosal.tistory.com/ * made by so_Sal */ GCC ++ 환경입니다. 인하대학교 유원희 교수님 이산수학 이산수학 기말 프로젝트였는데 근원노드를 찾아가는 부분에서 코드가 좀 지져분해졌네요. 알고리즘 책이나 인터넷에서 좀 찾아보면 좋은 코드들이 많은데.. 첨부터 뚝심으로 혼자 짜겠다고 한 결과가 -.- 참;; 좀 더럽습니다 ㅠㅠ. input파일로부터 노드와 간선을 읽어옵니다.input ex) a b b c c d d f e f f g 결과값을 output이란 파일로 저장합니다. #include #include #include #include using namespace std; class TP_sort{ private: int **matrix; //행렬, 동적으..

Default Parameter를 이용한 피보나치 수열

/* * http://sosal.tistory.com/ * made by so_Sal */ 디폴트 파라미터는, 함수의 매개변수에 자동으로 값을 넣어주도록 합니다. 아래 피보나치 함수(재귀)로 예를 들것인데, int fibo(int depth,int a=0,int b=1); 정의부분을 보면 a,b 매개변수에 값을 0,1을 주도록 되어있습니다. 메인함수나 다른 루틴에서 위 함수를 호출할 때 fibo(0) 은 곧 fibo(0,0,1)을 의미하고, fibo(5,1) 은 곧 fibo(5,1,1)을 의미합니다. fibo(5,5,3) 은 곧 fibo(5,5,3)을 의미합니다. 간단하죠? , 아래는 디폴트 파라미터의 예제입니다. 중요한것은 Default parameter를 구현할 때, 정의 부분에서 값을 넣어주되, 선..

이진 탐색트리 삭제 포함 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 애혀.. 삭제 추가 되게 어렵네요.. 뇌를자극하는 알고리즘 참고해서 만들었습니다. #include #include using namespace std; class node{ private: int value; public: node(int val){ value=val; } int getValue(){ return value; } void setValue(int val){ value = val; } node* left; node* right; ~node(){ delete this; } }; node* CreateNode(int value); // 노드생성함수 void InsertNode(node* tree,node*..

이진탐색트리 자동 생성 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 루트 노드를 50으로 넣은 후, rand()%100 으로 노드를 계속해서 생성해나갑니다. 생성된 노드보다 큰값이면 우, 작으면 좌측 노드로 향하며 우측, 또는 좌측노드가 NULL이라면 새로 생성된 노드는 자식노드가 되며, NULL이 아닐 경우에는, 다시 크기 비교를 반복합니다. #include #include using namespace std; class node{ private: int value; public: node(int val){ value=val; } int getValue(){ return value; } node* left; node* right; ~node(){ delete this; } }; ..

탐색 : 이진탐색

/* * http://sosal.tistory.com/ * made by so_Sal */ 이진탐색은 정렬이 되어있는 데이터 배열에 사용할 수 있습니다. 찾기를 원하는 value를 받고, 배열의 정 가운데 값과 비교하여 크면, 가운데와 맨 끝의 중간을 비교, 작으면 가운데와 처음을 비교합니다. 이렇게 반씩 줄여나가면서 데이터를 찾는 과정이 binary search 입니다. 그럼 간단한 함수 예제를 볼까요? #include #include #include using namespace std; int BinarySearch( int *arr, int size , int object){ //arr은 정렬된 데이터의 array, object는 찾고자 하는 수의 값을 뜻합니다. int left = 0; int r..

링크드리스트 :: 추가,삭제,출력,찾기,값변경,위치변경,종료

/* * http://sosal.tistory.com/ * made by so_Sal */ 추가된것은 값 변경, 위치변경 정도? 입니다. 단순히 복사생성자를 사용하여 node끼리 swap을 하는것입니다. node a(1),b(2); a = b; (는 불가능) #include using namespace std; class node{ private: int value; public: node(int a){ // 생성자 함수를 이용하여 value 초기화 value = a; } node(node &a){ value = a.value; // 복사생성자를 이용해 노드 초기화 } int getValue(){ // 값을 얻어오기 위한 함수 return value; } void getNode(node &a){ valu..

C-Library qsort() 퀵 정렬 함수

/* * http://sosal.tistory.com/ * made by so_Sal */ #include void qsort(void *base, // 데이터 집합 배열의 주소 size_t nmemb, // 데이터 요소의 개수 size_t size, // 각 배열 하나 원소의 크기 int(*compare)(const void *, const void *) //비교 함수에 대한 포인터 ); (gcc man-page 내용이므로, visual studio 함수 원형의 매개변수 이름과 다를 수 있습니다.) base : 배열의 이름, 즉 데이터 집합 배열의 주소를 받는 매개변수 nmemb : 배열에서 정렬하고자 하는 원소의 갯수 size : 각 원소의 자료형 크기 여기까진 쉬운데, 마지막 매개변수는 뭘까요? 비..

반응형