순차적 자료구조 : 배열과 리스트

minj-j·2024년 2월 25일
0

자료구조

목록 보기
5/6
post-thumbnail

배열과 리스트

가장 기본적인 순차적 자료구조로 중요하다
index 값으로 임의오 원소에 접근할 수 있는 자료구조 이다

배열

인덱스로 배열 특정위치에 있는 값을
상수시간 내에 제공할 수 있는 자료구조

C언어에서의 배열

A | 2 | 4 | 0 | 5 |
A라는 배열에 숫자가 이렇게 들어있다 가정하다

배열 A라는 원소에는 배열 A의 시작주소가 담겨있다.

ex) 주소값이 100이라 치면 이렇게 되어 있는것
A | 2 | 4 | 0 | 5 |
주소 | 100 | ? | ? | ? |

그럼 A[2]의 주소는 어떻게 되는 가
정수는 하나에 4byte이므로
A[2]의 주소 = A[0]주소 + 2 * 4byte = 108 이 되는 것이다.

리스트

배열과 달리 용량 자동 조절이 가능하다는 특징이 있다

C언어 배열

int A[4] 라고 선언했으면 딱 정수 4개만큼의 공간만 할당한다.
새로 공간을 할당하고 싶다면

B = (int*) malloc(6*4) # 얘는 공간 할당을 위한 임시 배열이다
A = B # 최종적으로 A에 다시 할당해 줘야함

malloc(memory allocation)을 활용하여 공간을 재할당 해줘야 한다.

Python의 list

파이썬에서 list는 클래스 이다

A = [ 2, 4, 0, 5 ]
라는 배열이 있을 때, 파이썬의 리스트는
A라는 배열 원소에 값을 저장하는게 아니라

2, 4, 0, 5 라는 객체들은 각각 다른 메모리에 저장되어 있는데,
A[0]..등등은 2, 4, 0, 5 숫자들이 저장된 메모리의 주소를 가리키고 있다.

ex) A[2] = A[2] + 1 이렇게 A[2]를 재정의 한다고 가정해 보자
그럼 0이 없어지는 것이 아니라 0은 그대로 있고
0 + 1된 값 1이 저장된 메모리 주소를 가리키는 것으로
가리키는 대상을 바꾸는 것이다

한국외대 컴전학부 신찬수 교수님의 자료구조 유튜브 강의를 듣고 정리
https://www.youtube.com/watch?v=buJBlTsWlW0&list=PLsMufJgu5933ZkBCHS7bQTx0bncjwi4PK&index=7

profile
minj-j`s Development diary!

0개의 댓글