안녕하세요 오늘의 이것저것입니다.

오늘은 프로그래밍에 도움을 주는 기술인

자료구조에 대해 알아보도록 하겠습니다.

 

 

 

자료구조란 

자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미합니다.

자료구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미 합니다.

즉, 데이터를 어떻게 저장하고 어떻게 꺼내는 것인가 입니다.

자료구조를 신중하게 선택하면 보다 효율적인 알고리즘을 사용할 수 있게 합니다.

그러기에 자료구조는 필요한 알고리즘에 대해 논하는 기초이론, 혹은 과목이라 말하며,

컴퓨터 과학 공학에서 알고리즘과 함께 중요한 기초이론이라고 말합니다.

 

 

 

 

자료구조의 장단점

베열 : JS를 제외하고 메모리 사용이 비효율적이고 데이터 이동 및 재구성이 느린 반면에 접근성이 빠릅니다.

큐 : 계속 앞으로 나아가는 구성이기 떄문에 불 필요한 데이터 공간이 남지만 구현이 굉장히 간단하여 편합니다.

연결 리스트 : 특정 데이터를 찾기가 어렵고 pointer. 데이터가 추가적으로 사용이 되지만 동적 메모리가 사용이 가능하며, 메모리를 효율적으로 사용이 가능하고 데이터 삭제 및 추가, 대용량 데이터를 처리에 용이합니다.

이중 연결 리스트 : pointer 데이터가 두 배로 들어가지만 싱글 연결리스트에 비해 양방향으로 볼 수 있어서 각 노드의 저 노드, 후 노드를 알 수 있습니다.

해시테이블 : 효율적인 츧면에서 25%정도가 비워졌기 때문에 저장 공간을 상대적으로 많이 차지합니다.

bst: 불균형이 생기지만 검색속도가 빠릅니다.

 

 

자료구조의 분류

자료의 특성과 크기, 주요 사용법과 수행하는 연산의 종류, 구현에 필요한 공간 크기 등에 따라 여러가지 종류의 자료구조 중 하나를 선택할 수 있습니다.

단순구조(자료구조로써 구분에 포함시키지 않습니다)

자료 간의 연결 형태와 모양에 따른 구분

1:1연결 형태로 자료들이 직선 형체로 나열되어 있는 구조입니다.

기본 선형 자료구조 : 리스트, 연결 리스트, 배열, 레코드 등으로 자료의 삽입 및 삭제가 어느 위치에서도 가능합니다.

제한 선형 자료구조 : 스택, 큐, 테크 등으로 자료의 삽입 및 삭제가 정해진 위치에서만 간으합니다.

자료 간에 연속, 연결 구조에 따른 구분

1:n의 연결 형태로 자료들이 계층적 구조를 나타내기에는 가장 적합합니다.

버선형 자료구조로는 트리 그래프 등이 있습니다.

 

 

마무리

 

프로그래밍을 할 때 거의 필수적으로 사용을 하고 있는 자료구조는 프로그래밍에 많은 도움을 주고 있습니다. 

많은 사람들이 말을 합니다 자료구조 안배우고 프로그래밍을 한다고 하면 안된는건가 사실은 프로그래밍을 할 수 있습니다. 그렇지만 자료구조를 뺀 프로그래밍은 설계를 할 때 좀 어려운점이 생깁니다, 자료구조는 프로그래밍을 할때 초반에 많이 사용이 된는데 이때 자료들의 저장을 알고 자료구조를 통해 정리를 하게 된다면 더 수원한 작업이 될겁니다.

 

 

끝으로 개발자의 꿈이나 it분야에 대한 고민이나 궁금증이 생기신분들은

아래의 링크를 참고하고 링크를 통해 무료상담이 진행되고 있습니다. 무료인 상담이니 편한 마음으로 상담 받아보시고

진로 및 목표에 대한 방향성을 잡을 수 있는 답변을 받아보세요~

http://IT.KG아이티뱅크.kr

https://open.kakao.com/o/sCmJdzsd

 

무료상담진행(성함, 전화번호,지역)남겨주세요

#정보보안#클라우드#데이터베이스#빅데이터#머신러닝#국비지원#학점은행제#c언어#자바#파이썬#프로그래밍#무료상담#상담진행#취업#진학#진로#kg아이티

open.kakao.com

+ Recent posts