본문 바로가기

코딩노트

취업준비를 위한 프로그래밍 자료구조란?

 

자료구조란
물건을 담기 위한 박스

 

프로그래밍을 하다 보면 어떠한 데이터를 담아야 합니다. 그게 숫자일 수도 있고 문자일 수도 있습니다. 또는 이것들의 집합일 수도 있습니다. 이것을 담기 위한 것을 자료구조(DS : Data Structure)라 합니다.

이해하기 쉽게 일상생활에 비유하면 박스를 떠올리면 됩니다. 그냥 박스가 한개만 있으면 돼지 왜 종류가 많은 거냐 하고 물어보곤 하는데 신선식품과 같은 음식은 냉동박스에, 깨지기 쉬운 물건을 담을 때는 내부에 충격방지 스티로폼이 덧대어진 박스에, 또 물건의 크기에 따라 다른 박스를 사용합니다.

 

술은 술잔에
물은 물컵에

 

이렇게 목적과 담을 용량에 따라 담는 용기가 다른 것처럼 자료구조에서도 목적과 용량이 맞게 다른 구조를 사용합니다. 실제 프로그래밍에도 많이 쓰이니 IT 회사 면접 전 준비해가면 도움이 많이 됩니다. 이 중에서도 실제 많이 쓰이는 것을 꼽자면 스택, 큐, 그래프, 트리 자료구조입니다.

  • 배열 (Array) : 데이터의 나열, 각 데이터는 인덱스 값을 가지며 인덱스로 데이터에 접근
  • 연결 리스트 (Linked list) : 데이터와 포인터가 하나의 노드 단위로 구성된 자료구조
  • 이중 연결 리스트 (Double Linked list) : 이전 노드의 포인터와 다음 노드의 포인터로 구성된 링크드 리스트
  • 원형 연결 리스트 (Circular Linked List) : 마지막 노드의 다음 노드가 처음 노드로 연결된 링크드 리스트
  • 스택 (Stack) : 접시를 쌓듯 가장 나중에 넣은 데이터를 가장 먼저 꺼낼 수 있는 데이터 구조 (LIFO : Last Input First Out), ex) 탄창에 총알
  • 큐 (Queue) : 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 데이터 구조 (FIFO : First Input First Out), ex) 식당 줄서기
  • 데큐 (Deque : Double-ended Queu) : 양쪽에서 데이터를 넣고 빼는 것을 가능한 큐
  • 해시 테이블 (Hash Table) : 키에 데이터를 저장하여, 키로 데이터에 접근할 수 있도록 하는 자료구조
  • 그래프 (Graph) : 노드와 엣지로 구성된 자료구조
  • 방향 그래프 (Directed Graph) : 엣지가 방향성을 갖는 그래프 자료구조, ex) 일방통행
  • 무방향 그래프 (Undirected Graph) : 엣지가 방향성을 갖지 않는 그래프 자료구조, ex) 양방통행
  • 가중 그래프 (Weighted Graph) : 엣지에 가중치가 부여된 그래프 자료구조
  • 트리 (Tree) : 노드와 브랜치로 구성된 자료 구조, ex) 부모와 자식 가족 관계도
  • 이진 트리 (Binary Tree) : 자식 노드가 최대 두 개인 트리 자료구조, ex) 예/아니오로만 구성된 질문지 구조

 

 

▼ 쿠팡 최저가 검색 

 

면접을 위한 CS 전공지식 노트:디자인 패턴 운영체제 데이터베이스 자료 구조 네트워크 개발자

COUPANG

www.coupang.com

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로 이에따른 일정액의 수수료를 제공 받습니다.

 

'코딩노트' 카테고리의 다른 글

윈도우 10 최적화 팁 TOP 3  (0) 2022.12.14