본문 바로가기
728x90

전체 글50

[자료구조] 이중 연결 리스트 • 이중연결리스트(doublely linked list) - 두 개의 포인터를 사용하여 선행 노드와 후속 노드에 모두 연결되는   양방향 구조 ‣ 자료삽입   (1) 새로운 노드 생성하여 데이터 영역에 자료(나)를 저장   (2) (나)의 오른쪽 포인터 영역이 다음 노드(다)를 가리키게 하고,         (나)의 왼쪽 포인터 영역이 이전 노드(가)를 가리키게 함   (3) 후속 노드(다)의 왼쪽 포인터 영역이 (나)를 가리키게 하고,         선행 노드(가)의 오른쪽 포인터 영역 역시 (나)를 가리키게 함 맨 앞 삽입 코드더보기void insert_front_dnode(int data) { // 삽입할 새로운 node 선언 Dnode* newNode = (Dnode*)malloc(sizeo.. 2024. 6. 20.
[자료구조] 단순 연결 리스트의 삽입과 삭제 • 자료삽입 (1) 먼저 새로운 노드(B)를 생성하여 노드의 데이터 영역에 자료를 저장 (2) 새로 생성된 노드(B)의 포인터 영역이 후속 노드(C)를 가리키게 함 (3) 선행 노드(A)의 포인터 영역이 새로 생성된 노드(B)를 가리키게 함 (4) 이전 노드(A)아 후속 노드(C) 사이에 새로운 노드(B)가 삽입됨 • 자료삭제 (1) 먼저 삭제하고자 하는 노드(B)의 이전 노드(A) 포인터 영역이 삭제하고자 하는       (B)의 바로 다음 노드(C)를 가리키게 함 (2) 선행 노드(A)의 포인터 영역이 삭제할 노드(B)의 후속 노드(C)와 연결됨 (3) 노드(B)의 삭제가 완료됨 문제)1) D와 n 사이에 newNode(주소:2)인 값 a를 삽입하고자 할 때,   포인터 영역(next)의 변화 과정을.. 2024. 6. 13.
[자료구조] 단순 연결 리스트 • 단순 연결 리스트 - 노드마다 하나의 포인터 영역을 가지며, 이전 노드의 포인터가 다음 노드를   가리키면서 서로 연결된 구조 - 하나의 자료를 저장하는 단위를 노드(node)라고 함 - 한 개의 노드는 실제 자료를 저장하는 데이터 영역과 다음 자료가 저장된 노드를   가리키는 포인터 영역으로 구성됨 - 헤드 포인터(head pointer)가 첫 번째 노드와 연결 - 포드를 통하여 연결되어 있는 각 자료에 접근할 수 있음 - 마지막 노드는 더 이상 연결할 후속 노드가 없으므로 포인트 영역을 널(null)로 설정 2024. 6. 12.
[자료구조] 리스트 • 리스트 - 순서에 따라 차례대로 저장하는 자료 구조 - 자료를 메모리에 저장하는 방법에 따라 순차 리스트와 연결리스트로    구분한다. ‣ 순차리스트   - 배열을 이용하여 구현하기 때문에 첨자를 이용한 자료 접근 속도가 빠름   - 자료들이 나열되어 있는 논리적 순서와 실제 기억 공간에 저장되는 물리적 순서가 같음 ‣ 연결리스트    - 물리적인 저장 공간 내에 각각 흩어져 있는 자료들이 링크로 서로 연결되어 있는 구조를 말함    - 선행 자료에는 후속 자료를 가리키는 주소가 포함되어 한 방향으로 연결됨    - 연결 방식에 따라 단순 연결 리스트와 원형·이중 원형 연결 리스트로 나뉨 2024. 6. 12.
[자료구조] 덱(deque) • 덱- double-ended queue의 줄임말- 양쪽에서 자료의 삽입과 삭제가 이루어짐 • 덱의 삽입 ‣ 우측에 값을 삽입하는 경우  -rear를 1증가시킨 후 우측에 값을 삽입 ‣ 좌측에 값을 삽입하는 경우  -rear를 1증가시킨 후 좌측에 값을 삽입• 덱의 삭제 ‣ 우측에 값을 삽입하는 경우  -rear를 1감소시킨 후 우측에 값을 삽입 ‣ 좌측에 값을 삽입하는 경우  -rear를 1감소시킨 후 좌측에 값을 삽입 • 실습 문제(가)와 같이 저장된 큐를 몇번의 삽입과 삭제 연산을 통하여 (나)와 같이 수정하려 한다.어떠한 과정을 거쳐야하는지 생각해 보자. TULOWBFLOWER 더보기좌측 삭제 x 2좌측 'F' 삽입우측 삭제우측 'E' 삽입우측 'R' 삽입 2024. 5. 30.
[자료구조] 원형 큐(Circular Queue) • 원형큐의 등장 이유- 큐는 구조가 간단하고 연산이 쉬운 장점이 있지만 front와 rear포인터가 계속 증가하다  보면 큐의 앞부분이 비어 있더라도 자료를 추가로 삽입할 수 없는 문제가 생김- 기존에 저장된 자료를 앞으로 이동시켜 삽입할 공간을 확보하는 방법도 있지만 이 경우에도  자료를 일일이 옮겨 주어야 하는 번거로움과 그에 따른 비용이 발생해 효율성이 떨어짐 • 원형큐- 기본 큐의 처믕과 끝을 논리적(포인터)으로 연결하여 자료의 오버플로가 발생하는 문제점을  보완하고 저장 곤간을 보다 효율적으로 사용한다는 장점을 가짐- front와 rear의 초깃값은 0이며 자료가 입력될 때마다 rear 포인터가 한 칸씩 앞으로 이동하며  연산을 수행함- 모든 공간에 자료가 가득 차게 되면 front 포인터와 .. 2024. 5. 30.
728x90