본문 바로가기

그림으로 배우는 자료구조4

[그림으로 배우는 자료구조] 스택이란? [그림으로 배우는 자료구조] 스택이란? 스택에 대해서 배우기 전에 먼저 책들이 담긴 상자를 떠올려 봅시다. 자 이제 긴 박스에 담긴 책을 비우고 다시 새책을 3권 넣어보겠습니다. A, B, C 책 3권이 긴 박스에 들어갔습니다. 이제 긴 박스에서 책을 꺼내 보겠습니다. 제목이 A라는 책을 꺼내서 보고 싶은데 위에 B와 C라는 책이 있어서 A 책을 바로 꺼낼 수 가 없습니다. 그럼 어떻게 해야 할까요? C책을 먼저 꺼내고, B책을 꺼낸 후, A 책을 꺼내면 되겠죠? 스택도 긴 박스에 책을 하나씩 넣고 빼는것과 동일한 구조입니다. 스택에 데이터를 하나씩 순서대로 넣을 수 있고, 데이터를 꺼낼 때는 제일 마지막에 넣은 데이터부터 꺼낼 수 있습니다. 이러한 스택의 구조적인 특징을 LIFO(Last In Fris.. 2022. 7. 21.
[그림으로 배우는 자료구조] 연결 리스트란? [그림으로 배우는 자료구조] 연결 리스트란? 이번 시간에는 연결 리스트에 대해서 학습해봅시다. 학자들은 변수를 많이 만들어 사용하는 대신에 하나의 배열을 선언해서 같은 종류의 많은 양의 데이터를 그룹핑해서 작업을 했습니다. 그런데 문제가 발생했습니다. 배열 안의 데이터 개수가 많아 질수록 특정 요소를 삭제하거나 특정 위치에 요소를 삽입 할때 기존의 요소들이 이동되면서 오버헤드가 점점 심해졌기 때문입니다. 예를 들어 숫자 종류만 담을 수 있는 배열에 숫자가 1,000개가 있다고 가정하면, 이 배열에 존재하는 특정 숫자를 삭제하거나 다른 숫자를 특정 위치에 삽입할때 수백개의 요소가 이동을 해야합니다. 학자들은 어떻게 하면 배열의 단점을 보완할지 고민을 했습니다. 고민 끝에 학자들은 연결 리스트라는 자료구조를.. 2022. 7. 20.
[그림으로 배우는 자료구조] 배열이란? [그림으로 배우는 자료구조] 배열이란? 이번 시간에는 배열에 대해서 학습해봅시다. 학자들은 변수를 이용해서 메모리에 값을 쉽게 할당하고 CPU에게 값을 계산을 시켰습니다. 그런데 문제가 발생했습니다. 메모리에 저장해야 될 값의 개수가 많아지면 변수의 수도 많아지게 된것입니다. 달력 기능을 구현할 때를 예를 들면 한달에 1일부터 최대 31일까지 있기 때문에 1부터 31까지 숫자를 저장할 변수를 31개 작성해야했습니다. 학자들은 어떻게 하면 변수를 많이 안쓰고 같은 종류의 데이터를 쉽고 효율적으로 메모리에 저장할 수 있을지를 고민했습니다. 고민 끝에 학자들은 배열이라는 개념을 만들었습니다. 배열은 같은 종류의 데이터를 모아서 메모리에 순서대로 저장하는 기법입니다. 배열은 요소(element)와 색인(inde.. 2022. 7. 19.
[그림으로 배우는 자료구조] 변수란? [그림으로 배우는 자료구조] 변수란? 이번 시간에는 변수에 대해서 학습해봅시다. 컴퓨터는 어떤 일을 잘할까요? 컴퓨터는 값을 저장하고 값을 계산하는 일을 아주 잘합니다. 간단하게 말하면 컴퓨터는 저장하는 일과 계산하는 일에 특화되어 있습니다. 그럼 컴퓨터가 저장과 계산을 하기 위해서 필요한 장치들은 무엇이 있을까요? 바로 CPU, 메모리, 하드웨어가 있습니다. CPU는 값을 계산하는 곳입니다. 메모리는 CPU가 계산해야 될 값, 계산한 값을 임시로 저장하는 곳입니다. 하드웨어는 CPU가 계산한 값을 영구적으로 저장하는 곳입니다. 자료구조를 이해하기 위해서 주목해야 할 장치는 메모리 입니다. CPU에게 계산을 시키려면 값을 메모리에 저장시켜야 합니다. 메모리의 주소공간은 0과1로 이루어진 수많은 숫자로 이.. 2022. 7. 18.