본문 바로가기

자료구조6

[자료구조] 이중 연결 리스트의 예제 프로그램(이것이 자료구조+알고리즘이다-p.50(1.3.2)) 이중 연결 리스트와 관련한 예제프로그램을 작성해보자. 예제프로그램의 내용은 다음과 같다. 1. 0,1,2,3,4,의 데이터값을 가지는 노드 5개 생성 후 리스트 출력 2. 리스트의 세번째 칸 뒤에 3000의 데이터값을 가지는 노드 삽입 후 리스트 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89.. 2024. 2. 11.
[자료구조] 이중 연결 리스트(Doubly Linked List)의 삭제연산과 소멸연산 이중 연결 리스트의 연산 단순 연결 리스트와 크게 다를 것이 없으니 단순 연결 리스트를 충분히 이해했다면 쉽게 이해할 수 있다. 아래 글을 통해 확인하고 오는 것도 좋을 것이다. https://zldn.tistory.com/4 [자료구조] 단순 연결 리스트(LinkedList)의 삭제연산 노드의 삭제 연산 단순 연결 리스트에서 노드를 삭제하는 방법은 다음과 같다. 1. 삭제할 노드의 앞 노드를 찾는다. 2. 앞 노드에 삭제할 노드의 링크 필드값을 저장한다. 3. 삭제한 노드의 앞 노 zldn.tistory.com 이중 연결 리스트의 삭제연산 이중 연결 리스트의 삭제연산을 하기 위해서는 삭제하려는 노드의 양쪽 포인터 2개와 이전 노드의 rightLink 포인터와 다음 노드의 leftLink 포인터를 다뤄야.. 2024. 1. 28.
[자료구조] 이중 연결 리스트(Doubly Linked List)의 생성연산과 삽입연산 이중 연결 리스트의 연산 단순 연결 리스트와 크게 다를 것이 없으니 단순 연결 리스트를 충분히 이해했다면 쉽게 이해할 수 있다. 아래 글을 통해 확인하고 오는 것도 좋을 것이다. https://zldn.tistory.com/3(단순 연결 리스트의 삽입연산) [자료구조] 단순 연결 리스트(LinkedList) 노드의 삽입 연산 노드의 삽입 연산 단순 연결 리스트의 노드를 삽입하는 방법은 다음과 같다. 1. 삽입할 노드를 준비한다. 2. 새 노드의 데이터 필드에 값을 저장한다. 3. 새 노드의 링크값을 지정한다. 4. 리스트의 zldn.tistory.com 이중 연결 리스트의 생성연산 1 2 3 4 5 6 7 8 9 Node* createNode(int i) { Node* new = (Node*)malloc.. 2024. 1. 28.
[자료구조] 단순 연결 리스트(LinkedList)의 삭제연산 노드의 삭제 연산 단순 연결 리스트에서 노드를 삭제하는 방법은 다음과 같다. 1. 삭제할 노드의 앞 노드를 찾는다. 2. 앞 노드에 삭제할 노드의 링크 필드값을 저장한다. 3. 삭제한 노드의 앞 노드와 삭제한 노드의 다음 노드를 연결한다. 다음 단순 연결 리스트에서 원소 '수'를 삭제하는 과정을 예로 들어보자. 1. 앞 노드 찾기 : 삭제할 노드의 앞 노드를 찾는다. 2. 앞 노드에 삭제할 노드의 링크 필드값 저장 : 앞 노드인 '월' 노드에 삭제할 노드인 '수' 노드의 링크 필드값인 '200'을 저장한다. 3. 삭제한 노드의 앞뒤 노드 연결 : 삭제한 노드의 앞 노드인 '월' 노드를 삭제한 다음 노드인 '금' 노드에 연결한다. 다음과 같이 3번 과정에서 '수' 노드의 링크 필드가 '금' 노드에 계속 연.. 2024. 1. 25.
[자료구조] 단순 연결 리스트(LinkedList) 노드의 삽입 연산 노드의 삽입 연산 단순 연결 리스트의 노드를 삽입하는 방법은 다음과 같다. 1. 삽입할 노드를 준비한다. 2. 새 노드의 데이터 필드에 값을 저장한다. 3. 새 노드의 링크값을 지정한다. 4. 리스트의 앞 노드에 새 노드를 연결한다. 다음과 같은 단순 연결 리스트의 '월'과 '금' 사이에 새 원소 '수'를 삽입하는 과정을 예로 들어보자. 1. 삽입할 노드 준비 : 삽입할 새 노드로 만들 공백 노드(150번지의 노드)를 메모리에서 할당받는다. 포인터 변수 new가 새 노드를 가리키게 한다. 2. 새 노드의 데이터 필드값 저장 : new 노드의 데이터 필드에 '수'를 저장한다. 3. 새 노드의 링크 필드값 저장 : 앞 노드인 '월'의 링크 필드값(200)을 new 노드의 링크 필드에 저장한다. 200은 다은.. 2024. 1. 23.
[자료구조] 연결리스트(LinkedList) 개념 배열과 연결리스트 비교 배열은 생성하는 시점에 반드시 배열의 크기를 지정해줘야 하고 생성한 후에는 그 크기를 변경할 수 없다. 즉 삽입연산이나 삭제연산 후에 연속적인 물리 주소를 유지하기 위해서 원소들을 이동시키는 추가적인 작업과 시간이 소요된다. 연결리스트는 배열처럼 데이터 집합 보관 기능을 가지면서도 배열과 달리 유연하게 크기를 바꿀 수 있다. 자료의 논리적인 순서와 물리적인 순서가 일치X -> 각 원소에 저장되어 있는 다음 원소의 주소에 의해 순서가 연결되는 방식으로 물리적인 순서를 맞추기 위한 오버헤드가 발생하지 않는다. 연결리스트 연결리스트는 리스트를 연결 자료구조로 표현한 구조이다. 연결하는 방식에 따라 단순 연결 리스트와 원형 연결 리스트, 이중 연결 리스트, 이중 원형 연결 리스트로 분류된.. 2024. 1. 22.