본문 바로가기
반응형

프로그래밍기초/자료구조16

#07 자료구조 연결리스트 (LinkedList) 연결기반 리스트구현해보기#ifdef _MSC_YER#define _CRT_SECURE_NO_WARNINGS#endif#include #include typedef struct _node{ int data; struct _node* next;} Node;int main(void){ Node* head = NULL; Node* tail = NULL; Node* cur = NULL; Node* newNode = NULL; int readData; //데이터 입력 while (1) { printf("자연수 입력: "); scanf("%d", &readData); if (readData 구현#ifdef _MSC_VER#define _CRT_SECURE_NO_WARNINGS#endif#include #incl.. 2024. 5. 6.
#06 자료구조 배열기반리스트 (ArrayList) 리스트자료구조에서 리스트는 구현 방법에 따라서 순차 리스트(ArrayList)와 연결 리스트(LikedList)로 나뉜다. 순차 리스트는 배열을 기반으로 구현된 리스트이고, 연결 리스트는 메모리의 동적 할당을 기반으로 구현된 리스트이다. 배열 기반 리스트의 단점* 배열의 길이가 초기에 결정되어야 한다. 변경이 불가능하다.* 삭제의 과정에서 데이터의 이동(복사)가 매우 빈번히 일어난다. 배열 기반 리스트의 장점* 데이터의 참조가 쉽다. 인덱스 값을 기준으로 어디든 한 번에 참조가 가능하다. 리스트의 ADT  List 자료구조의 ADT * void ListInit(List * plist); - 초기화할 리스트의 주소 값을인자로 전달한다. - 리스트 생성 후 제일 먼저 호출되어야 하는 함수이다. * void .. 2024. 3. 28.
#05 재귀- 하노이탑 하노이 탑(Tower of Hanoi) 알고리즘 이해하기하노이 탑(Tower of Hanoi)은 수학적 퍼즐로, 세 개의 막대와 여러 개의 크기가 다른 원판으로 구성됩니다. 퍼즐의 목표는 한 막대에 쌓여 있는 원판들을 다른 막대로 옮기는 것입니다. 이 과정에서 다음 규칙을 준수해야 합니다:한 번에 하나의 원판만 옮길 수 있습니다.원판은 항상 큰 원판이 작은 원판 아래에 위치하도록 옮겨야 합니다.세 번째 막대를 이용하여 중간 과정을 거칠 수 있습니다.하노이 탑 알고리즘 구현하노이 탑 문제를 해결하기 위해 재귀 알고리즘을 사용합니다. 다음은 C 언어로 구현한 예제 코드입니다:#include void Hanoi(int num, char from, char by, char to) { if (num == 0.. 2024. 3. 27.
#04 재귀를 이용한 팩토리얼 계산 재귀 (Recursion)재귀(recursion)는 어떠한 것을 정의할 때 자기 자신을 참조하는 것을 뜻합니다. 컴퓨터 과학과 수학에서, 재귀는 함수가 자신의 정의에 의해 정의될 때의 개념을 가리킵니다.#include void count(int num) { printf("%d \\n", num); count(num - 1); } int main() { count(5); return 0; }위 count() 메서드처럼 자기 자신을 호출하는 것이 재귀입니다.재귀의 탈출 조건위 코드를 보면 무한히 호출됩니다. 탈출 조건을 줘서 무한 반복을 끊어내야 합니다.#include void count(int num) { if (num == 0) return; .. 2024. 3. 25.
반응형