본문 바로가기

자료구조02_리스트 정의 컴퓨터 과학에서 같은 값이 한 번 이상 존재할 수 있는 일련의 값이 모여있는 추상 자료형 (이하ADT) 시퀀스(sequence)라고도 부른다. 순서를 가지며 추가, 삭제, 탐색 가능한 객체의 집합으로 원소들이 연속적으로 저장되는 형태의 추상 자료형 ※자료구조와 추상자료형 참고 https://crashcoding.tistory.com/11 기능 정의 연속적인 임의 개체들을 모델링한다. 각 원소는 다른 자료형을 가질 수 있다. 원소에 대한 접근은 순위rank를 이용한다. 참고 다음으로 '사용할 프로퍼티'나 '리스트가 수행할 동작'이 서술되는데 주로 추가, 삭제, 수정, 탐색 등이다. 수많은 프로그래밍 언어들은 리스트 자료형을 지원하며 리스트와 리스트 조작을 위한 특수한 문법과 시맨틱을 갖추고 있다. 즉..
자료구조(Data Structure)와 추상자료형(Abstract Data Type) 배경 파이썬으로 자료구조를 공부하는 와중에 배열을 접했다. 상당 수의 강의에서 자료구조를 설명할 때 배열의 정의를 실컷 설명하고는 리스트로 결과물을 보여준다. 이어서 파이썬 리스트의 특징을 설명하는데 배열을 설명하는 건지 리스트를 설명하는 건지 애매해서 답답했다. 단순히 리스트가 배열로 사용된다고 얼버무리고 넘어가기에는 배열의 정의와 파이썬 리스트는 안 어울렸다. 매끄럽지 못한 설명을 듣다 보니 무언가를 놓치고 있는 것 같았다. 간단한 개념으로 여겨지지만 명확한 것을 좋아하는 나로서는 깔끔한 정리가 필요했다. 그렇게 점점 파고들며 이렇게 자료구조와 추상 자료형을 정리한다. 자료구조 정의 일반적으로 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령으로 실제로 데이터를 ..
자료구조01_배열 용어 배열 配(나눌 배) 列(벌일 열) / 排(밀칠 배) 列(벌일 열) array (집합체, 배열, 배열하다, 정렬시키다) 의미 1. 일정한 차례나 차례나 간격에 따라 벌여 놓음 2. 동일한 성격의 데이터를 관리하기 쉽도록 하나로 묶는 일을 의미한다. 비슷한 말로 '배치', '나열', '열거', '진열'이 있다. 개인적 고찰 조금만 생각해보면 배열은 깊이 따져보지 않아도 납득할 수 있을 만큼 직관적이다. 우리는 '낱개'는 자연스럽게 인식하지만 '여러 개'는 한 번에 받아들이지 못한다. 인간이 한 번에 받아들일 수 있는 숫자는 7개로(편차+-2) 소위 '매직넘버'라고 하는데 이를 넘으면 인지할 때 절차를 필요로 한다. 직관에서 논리로 넘어가게 되는 것이다. 그렇기 때문에 여러 개를 효율적으로 다룰 수 있는..
자료구조 개관 (Data Structure Overview) 자료구조 정의 자료구조(資料構造, 영어: data structure) 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 자료구조 목적 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다. 다양한 프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 고려되어야 한다. 큰 시스템을 제작할 때 구현의 난이도나 최종 결과물의 성능이 자료구조에 크게 의존한다는 것을 많은 경험이 뒷받침하기 때문이다. 일단 자료구조가 선택되면 적용할 알고리즘은 상대적으로 명확해지기 마..