1-3. 추상 자료형
·
Computer Science/Data Structure
추상화란? 소프트웨어의 개발과 유지보수에 있어서 가장 중요한 문제는 "어떻게 소프트웨어 시스템의 복잡성을 관리할 것인가"이다. 복잡성에 대처하기 위한 새로운 아이디어들이 등장했고 이들을 구체화한 프로그래밍 방법론과 언어들이 개발되었다. 이러한 방법론이나 언어의 핵심이 추상화(Abstarction)이다. 추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념이나 기능을 간추려 내는 것을 말한다. 즉, 어떤 시스템의 핵심적인 구조나 동작에만 집중하는 것이다. 좋은 추상화는 사용자에게 중요한 정보는 강조되고 그렇지 않은 구현 세부 사항은 제거되는 것이다. 이를 위하여 정보 은닉 기법(information hiding)이 개발되었고, 추상 자료형의 개념으로 발전되었다. 추상 자료형이란? 추상 자료형(AD..
1-2. 알고리즘이란?
·
Computer Science/Data Structure
자료구조를 정리하면서 알고리즘(Alhorithm)을 왜 얘기하냐고 생각할 수도 있다. 하지만 자료구조와 알고리즘은 밀접한 관련이 있다. 알고리즘을 잘 다루려면 그 알고리즘에 잘 어울리는 자료구조를 선택해야 하고, 자료구조를 잘 다루기 위한 알고리즘도 자료구조마다 다르다. 프로그램 = 자료구조 + 알고리즘 대부분의 프로그램은 데이터를 처리하고, 이 자료들은 자료구조를 사용해 표현되고 저장된다. 또한 주어진 문제를 처리하고, 자료구조를 다루는 절차가 알고리즘으로 구현된다. 알고리즘은 다음과 같은 조건들이 만족되어야 한다. 0개 이상의 입력이 존재 1개 이상의 출력이 존재(연산의 결과) 명백성: 각 명령어의 의미는 모호하지 않고 명확해야 한다. 유한성: 한정된 수의 단계 후에는 반드시 종료되어야 한다. 유효성..
1-1. 자료구조란?
·
Computer Science/Data Structure
자료구조(Data Structure) 인터넷의 발달과 함께 우리는 정보화된 시대를 살아가고 있다. 찾아보고 다룰 수 있는 정보의 양이 엄청나기 때문에 자료를 얼마나 효율적으로 관리하고 사용하는가가 굉장히 중요한 문제가 되었다. 자료의 특성에 따라 자료를 다루고 정리하고 처리하는 방법이 다르다. 자료를 잘 다루기 위해서는 자료의 특성을 알아야 한다. 자료구조의 분류 컴퓨터에서 사용하는 자료들은 크게 단순 자료구조와 복합 자료구조로 나눌 수 있다. 단순 자료구조는 프로그래밍 언어에서 기본적으로 제공하는 정수, 실수, 문자 등을 의미하고, 복합 자료구조는 여러가지 자료들이 복합적으로 구성된 자료구조로 다시 선형 자료구조와 비선형 자료구조로 나눌 수 있다. 선형 자료구조 선형 자료구조(linear data st..