[자료구조] 자료구조란

안민선·2024년 3월 11일

cs 스터디

목록 보기
1/5
post-thumbnail

학교에서 배우는 '자료구조 실무'를 복습할 겸 내용을 정리해볼까한다.
선생님이 툭치면 나올 수 있을 정도로 공부해야하는 중요한 과목이라고 말씀하셨듯이 열심히 머리에 넣어봐야겠다.
.
.
.
우선 본문에 가기 앞서 이해에 도움이 되는 내용

자료(Data) (= 측정된 값)

컴퓨터 (=자료를 처리하는 기계)

출력(정보)

01. 자료구조 개요

자료구조(Data Structure)란?
자료가 어떤 형태로 저장되어 있는지, 어떻게 사용하는지를 나타낸다. 교과서에는 이렇게 나와있지만 간단하게 말하면 자료와 자료 사이의 논리적인 관계를 말한다.

자료구조의 가장 대표적인 것은 변수, 배열이 있다.

  • 변수
    String str = "Hi";
    int age = 18;
    float = 80.3;

  • 배열
    [10, 20, 30]


자료구조는 자료가 1개만 있어도 구조라고 할 수 있다.

그래서
String str = "Hi";
int age = 18;
float = 80.3;

이 변수들은 자료(Data)가 3개이고 자료구조도 3개라고 한다.

반면
[10, 20, 30]
배열에서는 자료(Data)가 3개이지만 자료구조는 1개라고 한다.


자료구조의 분류

  • 기본 자료구조 : 하나의 문자, 정수, 실수 등의 형태로 저장한다.
    (ex) 문자 : a,b,c... / 정수 : 1,2,3.. / 실수 : 2.1, 2.2, 2.3 ....
  • 파생 자료구조 : 기본 자료구조에서 확장된 자료구조이다.
    (ex) 문자열, 배열, 구조체, 포인터
  • 사용자 정의 구조 : 개발자가 특정한 목적에 맞게 정의해서 사용하는 자료구조이다.
    • 선형 구조
      • 배열
      • 연결 리스트
      • 스택(Stack) : LIFO (Last In First Out) 구조
        => 가장 나중에 넣은 데이터를 처음 출력
      • 큐(Queue) : FIFO (First In First Out) 구조
        => 가장 처음에 넣은 데이터를 처음 출력
    • 비선형
      • 트리(Tree)
      • 그래프(Graph)
        => 트리와 그래프의 차이점은 Cycle(순환)의 유무.
        트리는 불가능, 그래프는 가능

*배열구조체
공통점 : 자료 여러개를 묶을 수 있다
차이점 : 배열은 같은 자료형(타입)만 묶을 수 있고, 구조체는 다른 자료형(타입)도 묶을 수 있다.

String name = "홍길동";
int age = 18;
float scort = 80.3;

위에 처럼 자료형이 다른 것끼리 묶을 수 있는 것이 구조체이다.
(단, 데이터 사이에는 관련이 있는, 즉 논리적인 데이터여야한다.)

*배열은 파생 구조이면서 선형 구조이다.

*포인터


               
profile
사람들의 일상에 가치를 더하는 개발자🐥

0개의 댓글