반응형

자료구조 6

자료구조 덱(Deque) 기초 개념정리

덱(Deque) 덱(Deque)은 double - ended queue의 줄인 표현으로서, 양방향으로 데이터의 삽입 및 제거가 가능한 자료구조 이다. 양방향으로 데이터의 이동이 가능한 특성때문에 큐와 스택을 조합한 자료구조로 이해할 수도 있다. 덱의 핵심 기능은 앞으로데이터삽입, 앞으로데이터제거, 뒤로데이터삽입, 뒤로데이터제거 이다. 덱 또한 배열 및 연결리스트로 구현이 가능하지만 덱의 특성상 가장 잘어울리는 것은 양방향연결리스트 이다. 덱(Deque)의 ADT DequeInit: 덱의 초기화를 진행하는 함수로서 제일 먼저 수행되어야 한다. DQIsEmpty: 덱이 비어있는지 확인하는 함수이다. DQAddFirst: 덱의 머리에 데이터를 저장하는 함수로서 매개변수로 전달된 데이터를 저장한다. DQAddL..

자료구조 원형연결리스트 예제

CLinkedList.h 노드와 리스트를 정의하고 사용될 함수를 선언하는 헤더파일입니다. #ifndef __C_LINKED_LIST_H__ #define __C_LINKED_LIST_H__ #define TRUE 1 #define FALSE 0 typedef int Data; typedef struct _node { Data data; struct _node* next; }Node; typedef struct _CLL { Node* tail; Node* cur; Node* before; int numOfData; }CList; typedef CList List; void ListInit(List* plist); void LInsert(List* plist, Data data); void LInsertFr..

자료구조 리스트(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..

반응형