본문 바로가기

리스트

[자료구조/java] 이중 연결 리스트 (Doubly Linked List) * 이중 연결 리스트 (Doubly Linked List) - 양쪽 방향으로 순회할 수 있도록 연결한 리스트 원형 연결 리스트에서 현재 노드의 바로 이전 노드에 접근하려면 전체 리스트를 한바퀴 순회해야 하는 문제를 해결 [ 삽입연산 ] (1) 삽입할 노드를 가져온다. (2) 새 노드의 데이터 필드에 값을 저장한다. (3) 새 노드의 왼쪽 노드의 오른쪽 링크(rlink)를 새 노드의 오른쪽 링크(rlink)에 저장한다. (4) 그리고 왼쪽 노드의 오른쪽 링크(rlink)에 새 노드를 주소를 저장한다. (5) 새 노드의 오른쪽 노드의 왼쪽 링크(llink)를 새 노드의 왼쪽 링크(llink)에 자장한다. (6) 그리고 오른쪽 노드의 왼쪽 링크(llink)에 새 노드의 주소를 저장한다. [ 삭제연산 ] (1).. 더보기
[자료구조/java] 원형 연결 리스트 (Circular Linked List) * 원형 연결 리스트 (Circular Linked List) - 단순 연결 리스트에서 마지막 노드가 리스트의 첫 번째 노드를 가리키게 하여 리스트의 구조를 원형으로 만든 리스트 단순 연결 리스트는 현재노드에서 이전 노드를 접근 하려면 현재 위치에 상관없이 항상 리스트의 첫번째 노드부터 시작그러나, 원형 연결 리스트는 마지막 노드와 첫번째 노드가 연결되어 링크를 따라 순회하면 이전 노드에 접근 가능* 원형 연결 리스트는 마지막에 노드를 삽입하는 것이 곧 리스트의 첫 번째에 노드를 삽입하는 것과 같은 의미를 가짐 [ 삽입연산 ] if 리스트가 비어있는 경우 (CL==null)삽입하는 노드가 리스트의 첫번째 노드이자 마지막노드1. 리스트에 새로운 노드를 추가하고, 첫번째 노드로 지정2. 새 노드의 next가.. 더보기