자료구조(Data Structure)

김지환·2020년 5월 11일
0

Front-end

목록 보기
11/15
post-thumbnail

자료구조란?

: 데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조작하는 방법으로 상황 문맥에 맞게 데이터를 담을수 있는 적절한 구조를 말한다.

● Primitive Data Structure(단순구조): 프로그래밍에서 사용되는 기본 데이터타입

● None-Primitive Data Structure(비단순구조): 저장하는 구조가아닌 여러 데이터를 목적에 맞게 효율적으로 저장하는 자료구조

: 선형구조(Linear)는 젖아되는 자료의 전후 관계가 1:1(List/stack/queues)

: 비선형구조(Non-Linear)는 데이터 항목 사이에 관계가 1:n등(그래프/트리)

일반적으로 자주사용되는 자료구조

-Array(Python은 List)
-Tuple
-Set
-Dictionary
-stack&queue
-Tree

Array

: 순차적으로 데이털르 저장하는 자료구조로 저장하는 데이터를 요소(element)라고 하며 서로 연결된 데이터들을 순차적으로 사용할떄 사용한다.

● 장점 : 순차열적인 데이터를 저장하거나(어제오늘 비교,주식가격등)다차원 데이터를 다루거나 특정 index요소를 빠르게 읽어야할때요소가 자주 삭제되거나 추가되지 않을때 사용하면 좋다.

● 단점 : 중간 특정요소를 자주 추가하거나 삭제할때 까다롭다.(Slicing =요소의 특정 부분, 즉 n번째 index부터 m번째 index까지 따로 분리해 조작하는 것이 가능하다.)

: Array Resizing은 사이즈를 다시 조정하여 Pre-allocation을 함으로서 새로 추가되는 요소들도 순차적으로 저장가능하다.

Tuple

: List와 마찬가지로 데이터를 순차적으로 저장하는 자료구조중 하나이며 list와는 다르게 한번 정의되면 수정될수없다.2~3개 정도의 적은 수의 소규모 데이터를 저장할떄 많이 사용한다.(변수로 const같은것)

● 장점 : 간단한 값을 빨리 표현할수있고 Array와 list보다 더 가볍고 더 적은양의 메모리를 가진다.

● 단점 : 데이터가 무슨 의미인지 정확하지 않고 문맥에 맞게 추측해야한다.

my_tuple =(1,"2",3.5) 이런 경우
for i in my_tutpe:
print(i);

Tuple을 사용하는 경우

[(1,2), (2,4)] // Array(List) 안의 Tuple

Tuple을 안 쓰는 경우(class를 생성해야함)

class cord:
def init(self, x, y):
self.x = x
self.y = y

profile
Web Developer

0개의 댓글