본문 바로가기

반응형

2024/12/18

(15)
[C] 이중 연결 리스트로 구현한 큐 출처 - C로 배우는 알고리즘 (이재규 지음)#include #include typedef struct _node{ int key; struct _node *prev; struct _node *next;}node;node *head, *tail;void init_queue(); // head와 tail 메모리 할당 및 head와 tail의 prev, next 초기화int put(int k); // Queue에 값을 넣음int get(); // Queue에서 값을 얻어옴void clear_queue(); // Queue를 모두 비움void print_queue(); // Queue의 모든 내용 출력int main(int argc, char *argv[], char **env){ int i = 0; init..
[C] 선택 정렬 출처 - C로 배우는 알고리즘 (이재규 지음)​안정성 - 없음(이름순으로 먼저 정렬하고 점수순으로 다시 정렬 했을 때 이름순으로 정렬한 내용이 흩어짐)실행시간 - 데이터양이 두배 들어나면 시간은 4배 늘어남, N(데이터 량)의 제곱#include void select_sort(char ary[], int aryCnt);int main(int argc, char *argv[], char **env){ char ary[] = "TOLEARNSORTALGORITHM"; printf("Before Ary[%s]\n", ary); select_sort(ary, (sizeof(ary) - 1/* NULL 문자 제외 */) / sizeof(char)); printf("After Ary[%s]\n", ary); ret..
[C] 삽입 정렬 출처 - C로 배우는 알고리즘 (이재규 지음)#include #include #include void insert_sort(char a[], int n);int main(int argc, char *argv[], char **env){ char word[] = "TOLEARNSORTALGORITHM"; printf("정렬 전[%s]\n", word); insert_sort(word, (sizeof(word) - 1) / sizeof(char)); printf("정렬 후[%s]\n", word); return 0;}void insert_sort(char a[], int n){ int i = 0, j = 0; char t = 0; for(i = 1; i t && j > 0) // 굳이 t를 선언하지 않고 ..
[C] C언어로 객체지향 흉내내기 출처 - 윤성우 열혈 C++ 프로그래밍#include typedef struct _Data{ int data; void (*ShowData)(const struct _Data *); void (*Add)(struct _Data *, int);} Data;void ShowData(const Data *THIS);void Add(Data *THIS, int num);int main(){ Data obj1 = {15, ShowData, Add}; Data obj2 = {7, ShowData, Add}; obj1.Add(&obj1, 17); obj2.Add(&obj2, 9); obj1.ShowData(&obj1); obj2.ShowData(&obj2); return 0;}void ShowData(const Da..
[C] 년, 월, 일 입력 받아서 요일 구하는 함수 // 사용 예// FindDayOfWeek(2012, 6, 24);// return value// 0 : 일요일// 1 : 월요일// 2 : 화요일// 3 : 수요일// 4 : 목요일// 5 : 금요일// 6 : 토요일// 요일 구하는 공식 (y + y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d) % 7int FindDayOfWeek(int year, int month, int day){ if(month
[C] 최대 공약수 구하는 함수 (유클리드 알고리즘) int get_gcd(int u, int v){ int temp = 0; while(u) { if(u  유클리드 알고리즘 GCD(280, 30) = GCD(250, 30)                        = GCD(220, 30)                          = GCD(190, 30) ... 이런 식으로 큰 수에서 작은수를 계속해서 빼 나간다.                          = GCD(40, 30)                          = GCD(10, 30)      // 이렇게 앞의 수가 뒤의 수보다 작아지면 두 수를 교환                          = GCD(30, 10) ... 다시 반복해서 빼 나간다.                ..
[Java] 문자열로 된 수식 계산하기 원문 출처 - http://unikys.tistory.com/226​자바 1.6 이상에서는 Javascript 엔진을 이용하여 문자열로 된 수식 계산이 가능하다고 한다.(자바스크립트의 eval 함수와 같은 기능의 함수가 있다.)import javax.scrit.ScriptEngineManager;import javax.script.ScriptEngine;public class Test{ public static void main(String[] args) throws Exception { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); String fo..

반응형