자료구조의 탄생 배경
자료구조의 기본 의미: 자료를 쉽게 관리하기 위해 다양한 구조로 묶는 것.
- 프로그래밍은 컴퓨터로 인간의 행동을 편하게 하기 위해 만들어진 작업이다.
- 어떻게 프로그래밍을 하느냐에 따라 효율성(소프트웨어와 하드웨어의 성능, 속도, 협업도 포함)이 달라질 수 있다.
- 자료구조는 컴퓨터 과학에 있어서 전체적인 관점의 기초공사개념과도 같다.
- 프로그래밍 언어와는 별개로 실생활에서 발생하는 대용량의 다양한 데이터를 효율적으로 처리(저장)하기위해 자료구조라는 개념이 등장하였다.
효율적인 처리:
- 자동화
- 빠른 계산(계산기)
- 반복되는 내용 처리
- 여러 개의 값을 한 번에 처리
- 값이 빠르게 변경되는 경우에 대한 처리
- 특정 변수에 대한 처리
- 특정 값을 다양한 형태로 보기 원하는 경우
- 조건에 따른 처리
자료구조의 다양한 활용
자료구조를 체계적으로 정립하기 위해 프로그래밍 언어별로 다양한 자료형이 생겨났고, 파이썬에서는 리스트와 튜플을 통해 자료구조의 기본인 배열을 구현할 수 있게 되었다.
배열이란?
- 컴퓨터 과학에서 사용되는 기본적인 용어.
- 배열의 기능: 각각의 변수를 하나의 변수에 여러 개의 인덱스로 묶는 것
예: arr[5]
- 파이썬에서는 배열을 리스트와 튜플로 구현하고 활용한다.
파이썬의 리스트 vs 자료구조의 리스트
- 파이썬은 리스트 자료형이 자료구조의 연결리스트로 기능을 지원한다.
- 리스트는 임의의 메모리(위치)에 자료를 동적으로 처리할 수 있다.
- 파이썬의 리스트는 자료구조의 배열과 연결리스트의 특징을 모두 갖고 있다.
- 배열의 특징: 인덱스를 사용하여 노드에 접근 가능
- 연결리스트의 특징: 인덱스 크기를 자유롭게 확장 가능, 서로 다른 자료형을 노드로 가질 수 있다.
- 즉, 파이썬은 기존 프로그래밍에서 발생한 어려운 점을 부분적으로 개선시켰다고 할 수 있다.
파이썬의 리스트
- 자료구조의 기본은 배열이라고 할 수 있고 파이썬에서는 리스트와 튜플로 구현할 수 있다.
- 리스트나 튜플의 핵심은 인덱스를 사용하는 것이다.
- 파이썬의 리스트는 자료구조와 알고리즘에서 가장 많이 볼 수 있는 활용법이므로 익숙해져야한다.