반응형

자료구조

데이터를 정돈하여 저장한 구성체

데이터를 효과적으로 저장, 탐색, 삭제, 삽입 등 연산을 효율적으로 수행할 수 있는 구조

데이터를 이용한 연산을 효율적으로 수행할 수 있는 구조

위 세 가지가 강의에서 배운
자료구조의 의미이자 역할이자 소개이다.
 

쉽게 말해 자료들을 저장하는 방식인데
나중에 활용하기 쉽게 잘 정리해놓는다는 것이다.
 
기초적인 자료구조에는 다음과 같이 존재한다.

자료구조 종류 설명
integer 일반적으로 32비트로 정수를 표현

하나의 비트는 부호를 표현하는데 사용하고, 나머지 비트에 값을 저장

따라서 표현 가능한 범위는 -(2^32) ~ 0 ~(2^32) - 1임
float 부호비트, 소수부, 지수부를 나누어 저장함으로 실수를 표현함

복잡한 자료구조기 때문에 integer로 표현 가능하면 integer를 사용하는 것이 효율적임
character 영문은 1비트로, 한글은 2비트로 문자를 표현
string character를 배열로 저장함으로 문장을 표현
boolean 0과 1로 표현

실질적으로 1비트만 필요하지만, 최소 저장 단위가 8비트이기 때문에 8비트를 모두 사용함

 

파이썬 자료구조의 특징

참고로 이 강의는 파이썬 언어로 진행되기 때문에
일반적인 언어의 자료구조와 다소 차이가 있다.
 
주요 차이점들에는 다음과 같이 존재한다.

차이나는 특징 설명
모든 것이 객체 x = 100을 입력했을 때, x와 100이라는 값에 대한 동적 메모리가 생성된다.
이에 따라 x에는 100이라는 값이 있는 메모리의 주소가 할당된다.

100에 대한 주소가 생기는때문에 x = 100, y = 100을 입력했을 때, x와 y의 주소가 같게 되어 id(x) = id(y)가 참이 되는 일이 발생하기도 한다.
Overflow가 없음 일반적으로 파이썬의 정수는 32비트에 저장되지만, 그 범위를 넘었을 경우 자동으로 확장한다.
list가 동적배열개념 list 속 요소에 주소를 저장하기 때문에 저장될 요소의 자료형 및 저장공간을 미리 선언하지 않아도 된다.

이에 따라 [1, 'a', 1.85]와 같은 다양한 자료형이 하나의 list로 묶이는 것이 가능하다.

 

반응형

'대학교 공부 > 자료구조론 (2023)' 카테고리의 다른 글

2주차 - 연결 리스트 (Linked List)  (2) 2023.03.14

+ Recent posts