본문 바로가기
728x90

자료구조10

[자료구조] 연결 리스트(Linked List) 연결 리스트(Linked List) 연결 리스트는 *노드(Node)의 연결로 이루어진 자료구조이다. *노드 : 연결 리스트에서 데이터를 구성하는 요소(데이터, 연결 정보(링크)로 구성되어 있음) 노드는 데이터(data)와 다음 노드를 가리키는 링크(next)로 구성되어 있다. 제일 앞에 있는 노드를 헤드(head), 제일 끝에 있는 노드를 테일(tail)이라고 한다. 연결 리스트의 장단점 📌 장점 연결 리스트의 가장 큰 장점은 리스트의 길이가 가변적이라는 것이다. 배열은 크기가 가변적이지 않아서 크기를 정해준 다음에 부족하면 메모리를 더 할당하고, 배열의 데이터를 복사해야 한다. 하지만 연결 리스트는 다음 노드만 추가하면 되기 때문에 리스트의 사이즈를 조정하는 데 큰 비용을 들이지 않는다. 📌 단점 연결.. 2022. 5. 23.
[자료구조] 자료구조 종류 😉각 자료구조의 제목을 누르시면 좀 더 자세한 내용을 다룬 포스팅으로 넘어갑니다! (아직 미완인 것도 있음!)😉 1. Array(배열) 배열(Array : 정렬)은 동일한 타입의 데이터들을 저장(배열이 "int"타입인 경우 정수 요소만 저장 가능)하며, 고정된 크기를 가지고 있다. 인덱싱이 되어 있어 인덱스 번호로 데이터에 접근할 수 있다. (인덱스를 지정하여 접근하기 때문에 모든 요소에 빠르게 접근 가능하다.) 📌 배열의 용도 - 특정 요소를 빠르게 읽어야 할 때 - 다차원 데이터를 다룰 때 2. Linked List(연결 리스트) 연결 리스트(Linked List : 연결 목록)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료구조이다. ex) 첫 번째 노드.. 2022. 5. 19.
[자료구조] 추상 자료형(Abstract Data Type) 추상 자료형(Abstract Data Type) 기능의 구현 부분을 나타내지 않고 순수한 기능이 무엇인지 나열한 것을 추상 자료형(ADT)이라고 한다. 객체지향 언어(C++, JAVA 등)의 클래스(Class) 또는 사용설명서(User's Guid)와 유사하다. 📌 예시 1 (선풍기의 사용 설명서) 선풍기의 사용 설명서에는 정지, 미풍, 약풍, 강풍, 회전, 타이머 등의 기능 설명과 사용 방법이 나와있다. 하지만 버튼을 눌렀을 때 선풍기 내부 회로에서 어떤 일이 발생하는지에 대해서는 전혀 나와있지 않다. 이렇게 선풍기의 사용 설명서와 같이 "구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것"을 가리켜 '추상 자료형'이라고 한다. 📌 예시 2 (음료수 자판기) 두 번째 일상 .. 2022. 5. 17.
[자료구조] 자료구조(Data Structure) [알고리즘] 시리즈는 따로 포스팅 하겠지만 자료구조와 알고리즘은 다른 과목임에도 불구하고 매우 많은 연관성을 지니고 있기에 [자료구조] 시리즈에서 관련이 있는 알고리즘도 같이 설명하겠습니다! 자료구조와 알고리즘 프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다. 데이터 표현(저장) : 자료구조 / 데이터 처리 : 알고리즘 프로그램이 실행되기 위해서는 메모리에 올릴 데이터가 필요하며 이 데이터들을 담아내는 방식이 자료구조이다. 쉽게 말해 '데이터의 저장'을 담당하는 것은 자료구조이고, 그 데이터를 이용해 문제를 해결하는 방법은 알고리즘이다. 우리는 데이터(자료)를 저장한 경험이 있다. 예를 들면 "정수를 저장하기 위해 int형 변수를 선언한다." "다양한 정보를 저장하기 위해 배열을 .. 2022. 5. 15.
728x90