Study Fundamental/Data Structure 9

추상 자료형

소프트웨어의 개발과 유지보수에 있어서 가장 중요한 문제는 "어떻게 소프트웨어 시스템의 복잡성을 관리할 것인가"이다. 이러한 복잡성에 대처하기 위하 새로운 아이디어들이 등장하였고 이들을 구체화한 프로그래밍 방법론과 언어들이 개발되었다. 이러한 방법론이나 언어의 핵심이 추상화(abstruction)이다. 추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념이나 기능을 간추려 내는 것을 말한다. 즉, 어떤 시스템의 간략화 된 기술 또는 명세로서 시스템의 정말 핵심적인 구조나 동작에만 집중하는 것이다. 추상 자료형(Abstruct Data Type: ADT)은 추상화한 자료형, 즉 추상적으로 정의한 자료형을 의미한다. 구체적으로는 자료의 집합과 자료에 가해지는 연산들의 집합에 대한 수학적 명세이다. 이..

자료구조와 알고리즘

알고리즘이란? 어떤 문제를 해결하는 절차를 알고리즘(algorithm)이라고 한다. 알고리즘에 관해 자세한 정보를 알고 싶다면 알고리즘 카테고리를 참고해보기 바란다. 프로그램 = 자료구조 + 알고리즘 대부분의 프로그램은 데이터를 처리하고 있고 이들 자료는 자료구조를 사용하여 표현되고 저장된다. 또한 주어진 문제를 처리하는 정차, 즉 알고리즘이 필요하다. 따라서 프로그램은 자료구조와 알고리즘으로 구성되어 있다고 볼 수 있다. 자료구조와 알고리즘은 밀접한 관계가 있어서 자료구조가 결정되면 그 자료구조에서 사용할 수 있는 알고리즘이 결정된다. 컴퓨터가 복잡한 자료들을 빠르게 저장, 분석, 전송, 갱신하기 위해서는 자료구조가 효율적으로 조작화되어 있어야 한다. 또한 응용 프로그램에 가장 적합한 자료구조와 알고리..

자료구조란 무엇일까?

자료구조란? 인터넷과 정보 통신 기술의 발달에 따라 지금 우리는 고도로 정보화된 시대를 살아가고 있다. 모든사람이 다양한 자료를 활용하고 공유하며 생산하는 시대가 되었다. 이와 같은 정보의 홍수 시대에는 자료의 양이 아니라 얼마나 효율적으로 이들을 관리하고 사용하는가가 훨씬 더 중요해졌다. 컴퓨터는 현실 세계에서 반복적이고 복잡란 자료들을 효율적으로 처리하기 위한 기계이다. 컴퓨터를 이용하여 자료를 처리하여면 먼저 컴퓨터가 잘 다룰 수 있는 형태로 자료를 표현해 주어야만 한다. 사람들이 사물을 편리하고 효율적으로 사용하기 위해 정리하는 것과 마찬가지로 콤퓨터에서도 자료들을 정리하고 조직화하는 여러 가지 구조들이 있다. 이를 자료구조(Data Structure)라 부른다. 자료구조의 분류 컴퓨터에서 사용하..