연결 리스트
설명
-
연결 리스트(Linked List)
-
설명 : 연결 리스트는 각 요소가 데이터와 다음 요소를 가리키는 포인터로 이루어진 노드들이 연결된 자료구조입니다. 각 노드는 데이터와 다음 노드를 가리키는 링크로 이루어져 있습니다.
-
구현 방법 : 각 요소가 데이터와 다음 요소를 가리키는 포인터로 이루어진 노드들이 연결됩니다. 일반적으로 클래스나 구조체를 사용하여 노드를 정의하고, 포인터를 이용하여 노드들을 연결합니다.
-
사용 사례 : 동적으로 크기가 변하는 데이터 구조가 필요한 경우, 중간 삽입/삭제가 빈번한 경우, 메모리 효율이 중요한 경우 등에 사용됩니다.
- 장단점 :
- 장점: 동적으로 크기가 조절 가능하며, 중간 삽입/삭제가 빠르고 효율적
- 단점: 순차적으로 요소에 접근해야 하므로 접근 속도가 느림, 추가적인 메모리 사용 (포인터)
연결 리스트 시뮬레이션
연결 리스트 시뮬레이션
코드로 알아보기
-
Java
```Java class ListNode { int data; ListNode next;
public ListNode(int data) { this.data = data; this.next = null; } }
public class MyLinkedList { private ListNode head; private int size;
public MyLinkedList() {
head = null;
size = 0;
}
public void add(int element) {
ListNode newNode = new ListNode(element);
if (head == null) {
head = newNode;
} else {
ListNode current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
size++;
}
public int get(int index) {
if (index < 0 || index >= size)
throw new IndexOutOfBoundsException();
ListNode current = head;
for (int i = 0; i < index; i++) {
current = current.next;
}
return current.data;
}
public int size() {
return size;
} } ```
댓글남기기