자료구조에 대한 이해

김찬수·2023년 2월 25일
0

개요

  • 컴퓨터 프로그램은 데이터를 입력받아 조작하고 반환하는 것이 전부이다.
  • 데이터를 어떻게 조직하느냐에 따라 프로그램은 수십 수백 배 빠르거나 느리게 실행될 수 있다.
  • 데이터를 조직하는 방법을 자료구조라고 한다.
  • 더 나은 프로그램을 작성하기 위해서는 다양한 자료구조를 알아야 하고, 자료구조에 적절한 알고리즘을 선택하는것도 중요하다.

자료구조

  • 자료구조는 크게 선형 구조와 비선형 구조로 나눌 수 있다.
  • 선형구조에는 리스트, 스택, 큐가 있고, 비선형 구조에는 그래프와 트리가 있다.
  • 대부분의 자료구조는 네 가지 기본 방법을 사용하며 이를 연산이라고 한다.
  1. 읽기 : 자료구조 내 특정 위치를 찾아보는 것
  2. 검색 : 자료구조 내 특정 값을 찾는 것
  3. 삽입 : 자료구조에 새로운 값을 추가하는 것
  4. 삭제 : 자료구조 내 특정 값을 삭제하는 것
  • 자료구조를 구현하는 방법에는 크게 순차 자료구조와 연결 자료구조가 있다.
  1. 순차 자료구조 : 구현할 자료들을 논리적인 순서대로 메모리에 연속하여 저장하는 구현 방식으로 배열을 이용
  2. 연결 자료구조 : 노드라는 여러개의 메모리 청크에 데이터를 저장하며, 이를 연결하여 구현하는 방식으로 참조를 이용

*지역성(locality) : CPU가 기억장치의 특정 부분에 위치한 데이터나 프로그램 코드를 집중적으로 액세스하는 현상이다.

추상 자료형

  • 자료구조는 상기했듯 같은 기능을 한다고 할지라도 서로 다르게 구현할 수 있다.
  • 순차적으로 구현할 수도 있고, 연결적으로 구현할 수도 있다.
  1. 그렇기 때문에 구체적으로 어떻게 구현하라는 내용이 없이 기능만 정의한 추상 자료형 형태로 나타냄

컬렉션

  • 대부분의 언어는 프로그래머의 편의성을 위해 여러 자료구조와 알고리즘을 제공하는데, 이를 컬렉션 혹은 컨테이너라고 부른다.
  • 이런 라이브러리는 자료구조 구현체와 자료에 하나씩 접근할 수 있는 반복자를 제공한다.

foreach문

  • foreach문을 이용하면 반복자를 사용해 컬렉션의 전체를 순회할 수 있다.

  • 위의 예시처럼 사용하면 된다.

profile
프로그래머 지망생

0개의 댓글