본문 바로가기

프로그래밍/자료구조/알고리즘

자바로 구현하는 링크드 리스트 (Singley LinkedList) 안녕하세요? 이번 강좌에서는 자바로 제네릭을 통한 단일 연결리스트 (SingleyLinkedList) 를 구현하도록 하겠습니다. (자바에 대한 기초 사전 지식이 필요합니다. 자료구조는 반드시 기초를 먼저 공부후에 공부하세요!) 우선 자바에서는 java.uitl 패키지안에 다양한 자료구조를 제공하고 있습니다. 그중에서도 LinkedList 클래스 (이중연결리스트) 를 사용하면 아주 편리한 자료구조를 사용 할 수 있습니다. 이렇게 편리하게 이미 링크드리스트를 제공해주지만, 링크드리스트 자료구조가 내부적으로 어떻게 구현되어있고 어떤식으로 작동하는지 살펴보겠습니다. 우선, 제가 제작한 소스코드는 C로 배우는 쉬운 자료구조 (한빛미디어) 서적의 수도코드 (pseudo code) 를 참고 하였으며, java.uit.. 더보기
문자열 뒤집기 교수님께서 3번째 로 내주신 과제, 기본적으로 키보드로 부터 입력받아서 해도 되지만, 과제의 기본이 커맨드라인 을 통한거라, 이번에도 커맨드라인을 통해 입력받아 뒤집었습니다. 더보기
날짜 변환 하기 데이터 구조 교수님께서 2번째로 내주신 과제, 날짜 변환 해주는 문제 입니다. 입력값 2009 5 3 출력값 03-May-2009 #include #include //atoi 함수 void date_string(char *dateStr, struct date day); struct date { int yy; //년 int mm; //월 int dd; //일 } day; char *arr[12] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; /* arr[0] = "Jan" arr[1] = "Feb" arr[2] = "Mar" ... 이러한 형식으로 포인터 배열 생성 */ int main(int a.. 더보기
커맨드라인 을 통한 시간 초 변환 예제 이글은 과제 마감일 2010-03-23 에 공개 됩니다. 현 자료구조 교수님이 첫번째로 내주신 과제 입니다. 시간표현을 입력받아 초로 환산 하는 프로그램 - 입력은 시간,분,초 순서로 3개의 숫자를 커맨드 라인에서 입력 받는다. - 입력'시간' 은 0~23, '분' 은 0~59, '초'는 0~59 값을 갖는다. - 함수를 구현할것 실행 예) conv 14 20 55 출력 예) 51655 seconds #include #include // atoi를 사용하기 위해 헤더 불러옴 int convert_to_second(int hour, int minute, int second); int main(int argc, char **argv) { int result; int h,m,s; /* *argv 를 사용할경우.. 더보기
변수값 입력받아 수행시간 측정하는 코드 학교 자료구조 수업이 끝나고 교수님께서 풀어오라 했던겁니당~ 총 10개의 배열에 값을 입력받아 최대(큰값) 을 반환해서 출력하고 걸린 시간을 출력해주는겁니다. 고로 아래 스코어 배열이 10개지만 늘어나고 값도 커질수록 값 출력시간이 늘어나겠죠? ^^ #include #include #include #define MAX_ELEMENTS 10 int score[MAX_ELEMENTS]; int find_max_score(int n) { int i, tmp; tmp = score[0]; for(i=1;i tmp) { tmp = score[i]; } } return tmp; } void main(void) { int i; int maxvalue; clock_t start, finish; double durati.. 더보기