ETC/Data Struct | Algorithm
이진 탐색 ( Binary Search )
BinarySearch.h #ifndef __BINARYSEARCH_H__#define __BINARYSEARCH_H__ #define FAIL -1 int binarySearch_Recursive(int value[], int start, int end, int data);int binarySearch(int value[], int start, int end, int data); #endif BinarySearch.c #include#include"BinarySearch.h" //Using Recursiveint binarySearch_Recursive(int value[], int start, int end, int data){ int ret=FAIL; int middle; if(start
순차 검색 (Sequential Search)
SequentialSearch.h #ifndef __SEQUENTIALSEARCH_H__#define __SEQUENTIALSEARCH_H__ #define TRUE 1#define FALSE 0 int SequentialSearch_NotSorted(int value[], int size, int data);int SequentialSearch_Sorted(int value[], int size, int data); #endif SequentialSearch.c #include#include"SequentialSearch.h" int SequentialSearch_NotSorted(int value[], int size, int data){ int i; for(i=0 ; i
이진트리 순회
//================================================//Pre_Order_Traversal//입력 인자 : 루트노드//반환 인자 : 없음//트리 전위 순회//================================================void Pre_Order_Traversal(BTNode *pRoot){ if(pRoot!=NULL) { printf("%d\t", pRoot->data); Pre_Order_Traversal(pRoot->pLeft_Child); Pre_Order_Traversal(pRoot->pRight_Child); } } //================================================//In_Order_Trave..
이진트리
1. Binary_tree.h #ifndef _BINARY_TREE_#define _BINARY_TREE_ typedef struct BTree{ int data; //정수형 Data struct BTree* pLeft_Child; //좌측 자식 struct BTree* pRight_Child; //우측 자식}BTNode; BTNode* Create_Binary_Tree(int root_Data); //루트 노드 생성BTNode* Insert_Left_Child(BTNode* pParent, int child_Data); //좌측 노드 생성BTNode* Insert_Right_Child(BTNode* pParent, int child_Data); //우측 노드 생성void Print_Binary_Tree..
스택 - 배열구조 Array_Stack)
스택은 선형 자료구조로써 FILO(First Input Last Output) 으로 처음 입력된 값이 가장 마지막에 출력되는 자료 구조이다. 1개의 데이터가 다른 데이터와 서로 하나씩 연결된 1:1 구조로써 선형 구조이다. 스택에 데이터를 입력하는 것을 Push 데이터를 꺼내는 것을 Pop이라고 한다. Top은 현재 가장 높은 위치의 데이터의 인덱스라고 생각하면 된다. Top값을 스택에서 데이터를 Push, 또는 Pop할때 마다 변화시키므로, 현재 데이터가 들어갈 수 있는지 존재하는지 등의 여부를 확인가능하다. 아래 소스는 배열로 된 스택이다. #include #include void Push(int data); int Pop(void); int Full(void); int Empty(void); voi..
정렬 - 삽입 정렬
삽입 정렬은 전체 자료에서 정렬 시 삽입할 위치를 찾아 자료를 이동시키는 알고리즘 이다. Insertion_Sort.h #ifdef _INSERTION_SORT_ #endif _INSERTION_SORT_ void Insertion_Sort(int data[], int size); void Prt_Data(int data[], int size); Insertion_Sort.c #include #include"Insertion_Sort.h" void Insertion_Sort(int data[], int size) { int i=0,j=0,temp=0; for(i=1;i0&&data[j-1]>temp) { data[j]=data[j-1]; j--; } data[j]=temp; } } void Prt_Dat..