목록Programming Language (59)
이야기박스
안녕하세요~ 알고리즘 탐색 부분으로 넘어왔습니다. 알고리즘 게시판에서 이진 검색을 포스팅 했는데요 이건 트리 ADT를 이용하여 검색하는 코드를 작성하였습니다. ○ 코드 특징 - 중복을 허용하지 않음 - 이진 트리 형식 - 완전 이진트리는 아닙니다. - 모듈화가 잘되어 있지 않습니다. (대충대충.. 멘붕상태로 함.. ) ○ 코드 - BinaryTree.h #pragma once #include using namespace std; class BinaryTree { BinaryTree *leftc; BinaryTree *rightc; int data; public: BinaryTree(); BinaryTree(int elem); void setChild(BinaryTree *child); int getDat..
안녕하세요 !! 오늘은 정렬 알고리즘들을 많이 모아 정리해놨습니다 ㅎㅎ 목적은 각 알고리즘들이 수행시간 실험을 하기 위해서였습니다. 구성은 다음과 같습니다. ○ 일반 - 버블 정렬 (Bubble Sort) ○ 우선순위 큐 (Priority Queue) - 선택 정렬 (Selection Sort) - 삽입 정렬 (Insertion Sort) - 힙 정렬 (Heap Sort) ○ 분할 통치 기법 - 합병 정렬 (Merge Sort) - 퀵 정렬 (Quick Sort) ○ 기타 메소드 - checkTime() : 시간 측정 해줍니다 - swap() : 다들 아시죠? - print() : 리스트를 출력합니다 시험들이 끝나고 심심해서 막 달렸네요 ㅋㅋ 작년 이맘때 열심히 공부했었는데, 오랜만에 작성하려고 하니 책..
후위수식 계산기입니다.마우스 클릭 혹은 키보드로 입력을 받고, 계산을 하는 방식입니다 ^^간단하게 정수의 계산만 구현했습니다. > Main - Frame을 키는 클래스Calculator - JPanel을 상속받아 전체적인 이벤트 및 화면을 담당하는 클래스NumPad - 버튼들을 담당하는 클래스History - 결과물을 출력해주는 클래스Convert - 후위 수식으로 전환해주는 클래스Evaluate - 후위 수식을 통해 계산을 해주는 클레스Stack - 스택 클래스 1. Main class import javax.swing.*; public class Main { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setD..
자바로 하노이의 탑 UI를 만들었죠. 이제 그 근본이 된 코드. c로 짠 코드를 올리도록 하겠습니다. 이중재귀를 이용한 하노이의 탑입니다! #include <stdio.h> void move(int n, char from, char to) { // n번째 블록을 from에서 to로 옮겨라 printf("%dth %c %c\n", n, from, to); } int hanoi(int n,char from, char other, char to) { //printf("Checker >> n : %d, from : %c , other : %c, to : %c\n", n, from, other, to); if (n == 1) { move(n, from, to); return 0; } hanoi(n - 1,..
일단 UI 초안은 완성했습니다.하노이 탑, 로직도 완성했구요. 간단한 UI입니다. 3개의 직사각형이 탑을 꽂아 넣을 곳이에요 ㅎㅎ 텍스트 필드에 입력을 하면! 이런식으로 결과가 나옵니다. 이제 가장 중요한!데이터 관리를 어떻게 할 것인가 고민해야 하네요.ㅜㅜ벌써부터 막막합니다. 열심히 고민해서 구현해보겠습니다.
프로그램을 공부하면 누구나 다 지나가게 될 하노이 탑. 자바로 구현해 보려 합니다!단순한 구현이면 재미가 없으니,일단 UI로 만드는 것이 목표입니다. 지금 제 실력을 될지는 모르겠지만 ^^;;노력해보겠습니다. 하노이탑의 로직 코드는 c로 먼저 올리도록 하겠습니다!
안녕하세요 ㅎㅎ 이번은 힙정렬의 문제를 가지고 왔습니다. 우선 힙정렬을 한 후, k번째 작은 수를 찾는 알고리즘을 만들겠습니다. 배열은 랜덤함수를 이용하여 받았습니다. 코드입니다. #include #include #include #define swap(a,b) {int t; t = a; a=b; b=t;} //a와 b를 교환, 자주 사용하기 때문에 정의하고 시작 void downHeap(int *l, int i, int n) /// 마지막노드 이후는 계산 안하게 해야함. { int *left = &l[2 * i + 1], *right = &l[(2 * i + 2)], *down, tmp; // 왼쪽 자식과 오른쪽 자식의 방의 위치 확인. if (2 * i + 2 < n) { if (*left < *rig..
다익스트라 어렵죠 ㅎㅎ.코드 보고 참고하셨으면 좋겠네요. 인접리스트를 이용한 다익스트라 입니다.물론 가중치도 존재합니다! 전체 그래프의 모형은 다음과 같습니다. 그러면 소스를 보여드리도록 하겠습니다 ^^ #include #include #defineINFINITE 9999// 거리의 초기값 #defineNUM_VERTICES 6// 정점의 개수 // 인접리스트 구조체 typedef struct Adjacency { struct Adjacency *link;// 연결 int vertex;// 정점 int weight;// 무게 }Adjacency; // 인접 리스트 Adjacency *Graph_list[NUM_VERTICES]; void initGraph(); void insertEdge(int, int..