프로그래밍 기초/자료구조
-
연결 자료구조 - 이중 연결 리스트(DoublyLinkedList)프로그래밍 기초/자료구조 2020. 10. 26. 08:19
이중 연결 리스트 이중 연결 리스트는 이전 노드의 주소와 다음 노드의 주소를 모두 관리한다. - 삽입(Insert) 연산 기존 노드의 다음을 삽입 노드가 가리키고 기존 노드의 다음은 삽입 노드를 가리키도록 하고 다음 노드의 이전을 삽입 노드가 가리키고 다음 노드의 이전은 삽입 노드를 가리키도록 한다. * 원본 데이터 리스트 끝에 노드를 삽입하는 경우 리스트의 마지막 노드의 다음이 삽입 노드를 가리키고 삽입 노드의 이전이 마지막 노드를 가리키도록 만들어준다. ※ 리스트 앞에 노드를 삽입하는 경우 삽입 노드의 다음이 처음 노드를 가리키고 처음 노드의 이전이 삽입 노드를 가리키도록 만들어주면 된다. 리스트 중간에 노드를 삽입하는 경우 리스트 앞에 노드를 삽입할 때의 작업과 리스트 뒤에 노드를 삽입할 때의 작업..
-
연결 자료구조 - 단일 연결 리스트(SinglyLinkedList)프로그래밍 기초/자료구조 2020. 10. 16. 09:56
연결 자료구조 메모리에 연속적으로 저장되어 연결되는 것이 아니라 각 원소가 가진 포인터를 통해 다음 원소를 가리키는 것으로 연결된다. 순차 자료구조의 삽입과 삭제에 추가 연산이 필요하고 메모리 사용에 비효율적이라는 문제를 개선한 방법이다. 노드 자료구조에서는 연결 자료구조의 표현을 위한 데이터와 다음 원소를 가리키는 포인터의 묶음으로 이루어진 구조를 노드라고 한다. 데이터를 저장하는 부분을 데이터 필드(Data Field), 포인터 부분을 링크 필드(Link Field)라고 한다. 다음의 순차 자료구조로 표현된 데이터를 연결 자료구조로 표현하면 다음과 같이 표현된다. - 순차 자료구조 표현 인덱스 0 1 2 3 데이터 10 20 30 40 - 연결 자료구조 표현 ※ 연결 자료구조는 인덱스를 저장하는 것이..
-
순차 자료구조 - 선형 리스트(ArrayList)프로그래밍 기초/자료구조 2020. 10. 2. 12:49
순차 자료구조와 선형 리스트 순차 자료구조 데이터를 순서대로 저장하고 인덱스를 부여하여 관리하는 자료구조를 말한다. 배열을 이용해 리스트를 구현한 선형 리스트(또는 ArrayList)를 포함한다. 선형 리스트 데이터가 메모리에 물리적으로 연속적으로 저장되기 때문에 리스트 중간에서 데이터를 삽입하거나 삭제하는 연산을 하는 경우 데이터를 옮긴 후 연산을 처리해야 하는 오버헤드가 발생한다. - 삽입(Insert) 연산 기본적으로 ArrayList는 데이터를 삽입할 수 있는 공간(Capacity)이 정해져 있다. 그렇기에 기본적으로 데이터를 삽입하면 빈 공간에 데이터를 삽입하는 형태가 된다. * 원본 데이터 인덱스 0 1 2 3 4 데이터 10 20 30 40 리스트 끝에 데이터를 삽입하는 경우 빈 공간이 존재..
-
자료구조 개념 정리프로그래밍 기초/자료구조 2020. 9. 27. 21:02
자료구조 개요 자료구조란? 데이터를 효율적으로 접근 및 사용이 가능하도록 하는 데이터의 조직, 저장, 관리 방법을 말한다. 자료 구조의 분류 선형 구조 자료 간 연결 관계가 1:1 관계인 구조 스택, 큐, 덱 배열과 연결 리스트가 포함되기도 한다. 비선형 구조 계층 구조 혹은 망 구조 트리, 그래프 자료구조의 표현 자료의 표현 방법 컴퓨터는 0과 1로 구성된 2 진수를 사용하며 n 개의 비트로 2ⁿ 개의 상태를 표현 가능하다. 1 개의 비트 → 2¹ = 2 개의 상태 표현 (0, 1) 2 개의 비트 → 2² = 4 개의 상태 표현 (00, 01, 10, 11) 3 개의 비트 → 2³ = 8 개의 상태 표현 (000, 001, 010, 011, 100, 101, 110, 111) º º º n 개의 비트 ..