반응형

Programming/Data Structure and Algorithm 16

윤성우의 열혈자료구조 문제 04 - 1연결리스트 익숙해지기

데이터 3 -> 2 -> 7 -> 8 ->5 를 입력하고 저장하면 역순인 5 -> 8 -> 7 -> 2 ->3 으로 저장되게 하는 예제 #define _CRT_SECURE_NO_WARNINGS #include #include typedef struct _node {//node 구조체 정의 int data; struct _node* next; }Node; int main() { Node* head = NULL;//head 노드 선언 Node* tail = NULL;//tail 노드 선언 Node * cur = NULL;//cur 노드 선언, 저장된 데이터조회를 위한 변수 Node* newNode = NULL;//노드를 추가하기 위한 노드 int readData;//데이터를 저장하기 위한 변수 while (..

자료구조 리스트(List) 기초 개념정리

추상자료형(Abstract Data Type) 추상자료형 이란 간단히 ADT라고도 불리며, 프로그래밍을 공부하면 볼 수 있는 용어 입니다. ADT는 구체적인 기능의 완성과정을 언급하지 않고 단순히 기능이 무엇인지를 나열한 것 입니다. 리스트 리스트자료구조는 데이터를 나란히 저장하며, 중복된 데이터의 저장을 허용합니다. 순차리스트: 배열기반의 리스트, 메모리의 특성이 정적이다. 연결리스트: 메모리의 동적할당 기반의 리스트 배열기반리스트 배열기반리스트는 연결리스트에 비해서 참조가 쉽습니다. 또한 인덱스 값을 기준으로 사용하여 어느 위치든 한번에 참조가 가능합니다. 배열기반리스트의 단점으로는 삭제과정을 거칠때마다 데이터의 이동이 필요하기 때문에 효율이 떨어지며, 배열의 길이가 초기화할때 정해져야하며 변경이 불..

윤성우의 열혈자료구조 문제 03-1

#define _CRT_SECURE_NO_WARNINGS #include #include #define TRUE 1//TRUE는 1로 정의 #define FALSE 0//FALSE는 0으로 정의 #define LIST_LEN 100//리스트의길이는 100으로 정의 typedef int LData;//int를 LData로 정의 typedef struct __ArrayList//구조체 ArrayList 정의 { LData arr[LIST_LEN]; int numOfData; int curPosition; }ArrayList; typedef ArrayList List; void ListInit(List* plist) {//리스트 초기화함수 plist->numOfData = 0; plist->curPositio..

하노이탑 c언어 예제 (자료구조)

하노이탑 코드 비록 짧은 코드이지만 재귀함수를 이해하는데 도움이 많이 되는 것 같습니다. 저는 처음봤을때 머리로 한번에 이해가 되지않아서 한단계씩실행하여 과정을 천천히 이해했습니다. #define _CRT_SECURE_NO_WARNINGS #include #include void Hanoi(int num, char from, char by, char to) { if (num == 1) printf("원반1을 %c에서 %c로 이동\n", from, to); else { Hanoi(num - 1, from, to, by); printf("원반%d를 %c에서 %c로 이동 \n", num, from, to); Hanoi(num - 1, by, from, to); } } int main() { Hanoi(3, '..

자료구조 기초 개념 (Data Structure) (빅오표기법)

자료구조란 프로그램은 데이터의 표현 및 데이터의 처리이다. 이때 데이터의표현은 데이터의 저장을 포함하는 개념이며, 데이터의 저장을 담당하는 것이 자료구조 이다. 자료구조의 종류는 선형구조(리스트, 스택, 큐), 비선형구조(트리, 그래프), 파일구조, 단순구조가 있다. 알고리즘의 성능분석방법 자료구조와 알고리즘의 정상적인 동작외에 좋은성능인지 알기위하여 자료구조와 알고리즘을 분석하고 평가하기위해서 필요하며, 처리해야할 데이터의수(n)이 있다고 가정했을때 n의 증가에 따라서 변하는 연산횟수로 판단할수 있다. 시간복잡도(time complexity): 알고리즘의 수행시간 분석결과 공간복잡도(space complexity): 메모리 사용량에 대한 분석결과 알고리즘의 동작을 판단할때 최선의 경우(best case..

반응형