본문 바로가기
반응형

코딩/자료구조6

[자료구조] 8-1. 트리의 개요 목표: 트리에 대해 알아보자 앞서 소개된 선형 자료구조들과 달리 트리는 비선형 자료구조이기 대문에 많이 다르게 느껴질 수 있고, 트리는 고급 자료구조로 구분이 되는 만큼 학습에 집중을 요한다. 트리는 계층적 관계(Hierarchical Relationship)을 표현하는 자료구조이다. 컴퓨터의 디렉터리 구조나 집안의 족보, 기업 및 정부의 조직도가 트리의 예가 된다. 위 그림도 그렇지만, 사실 트리 구조는 나무처럼 보이지는 않는다. 그럼에도 트리 구조라 하는 이유는 '가지를 늘려가며 뻗어나간다'는 공통점이 있기 때문이다. 위 유형의 트리를 가리켜 의사 결정 트리(decision tree)라고 한다. 의사 결정 트리는 위 사진 처럼, 다양한 데이터 분석 기법의 유용한 도구가 되며, 경영학 등 공학 이외의 .. 2021. 5. 30.
[자료구조] 3-2. 배열을 이용한 리스트의 구현(1) 목표: ADT를 근거로 리스트를 구현해보자. 리스트의 종류(자료구조의 구현방법에 따른 분류) -순차 리스트: 배열을 기반으로 구현된 리스트 -연결 리스트: 메모리의 동적 할당을 기반으로 구현된 리스트 위의 ADT는 각각의 특성적 차이 때문에 차이를 두기도 하지만 동일할 수도 있다. 정의하는 자의 필요에 따라서, 확장이 가능하기 때문에 ADT에 차이가 난다. 리스트 자료구조의 가장 기본적이고 중요한 특성 데이터를 나란히 저장하고 중복된 데이터의 저장을 막지 않는다. 리스트 자료구조의 ADT Operations(연산, 함수, 명령...): void ListInit(List * plist); -초기화할 리스트의 주소 값을 인자로 전달한다. -리스트 생성 후 제일 먼저 호출되어야 하는 함수이다. void LIn.. 2021. 4. 17.
[자료구조] 3-1. 추상 자료형: Abstract Data Type 목표: 추상자료형에 대해 알아보자. 추상자료형(ADT, Abstarct Data Type): 컴퓨터 과학에서 자료들과 그 자료들에 대한 연산들을 명기한 것이다. 자료구조의 관점에서는 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것을 가르킨다. 연산을 명기했다고 하는데 왜 자료형인가? 구조체의 경우, 구조체 정의만으로 자료형의 정의가 완성되는 것이 아니다. 구조체를 쓸 때는 보통 구조체가 필요로 하는 연산을 함수로 정의한다. 이렇듯 함수들을 통해 연산의 종류를 결정하였을 때 비로소 자료형의 정의가 완성이 된다. 따라서, 자료형의 정의에 기능 혹은 연산과 관련된 내용을 명시할 수 있다는 것! 구조체도 자료구조의 일종이나, ADT에는 구조체의 멤버(내부)를 굳이 포함 시킬 필요.. 2021. 4. 17.
[자료구조] 1-1. 자료구조(Data Structure)에 대한 기본적인 이해 자료구조 공부를 위해서는 다음 파트에 대한 지식이 있어야 한다. 기본적으로 C를 제대로 공부했다면 다 알고 있는 내용일 것이다. -구조체, typedef -malloc 함수, free 함수(동적할당) -포인터 변수, 포인터 연산(자유롭게 할 수 있어야 함) -헤더파일(정의, #ifndef ~ #endif 매크로) -둘 이상의 소스파일과 헤더파일을 이용하여 프로그램 만들기 -재귀함수 +기초 문법 프로그램: 데이터를 표현하고 그렇게 표현된 데이터를 처리하는 것 자료구조: 데이터의 표현 및 저장방법 선형 자료구조: 데이터를 선의 형태로 나란히, 일렬로 저장하는 방식 비선형 자료구조: 데이터를 나란히 저장하지 않는 구조(선형 자료구조에 비해 상대적으로 공부하기 수월하지 않음) 알고리즘: (표현 및 저장된 데이터.. 2021. 4. 17.
반응형