Unborn 8.0 Yellow Pointer
본문 바로가기

42 SEOUL/DS_Study4

[DS/자료구조] 연결 리스트 - 다항식 계산 구현 다항식 계산 구현 #include "../include/polynomial.h" LinkedList*multiply(LinkedList *aList, LinkedList *bList) { intalen = getPolynomialListLength(aList) - 1; intblen; LinkedList*newList = createPolynomialList(); ListNode*newNode = calloc(1, sizeof(ListNode)); ListNode*aHeadNode = aList->headerNode.pRLink; ListNode*bHeadNode; while(alen--) { blen = getPolynomialListLength(bList) - 1; bHeadNode = bList->.. 2022. 4. 22.
[DS/자료구조] 연결 리스트 - 이중 연결 리스트(Doubly Linked List) 이중 연결 리스트(Doubly Linked List) 이중 연결 리스트는 각 노드가 노드와 노드가 서로 연결되어있다. 단순 연결 리스트와 다르게 이전 노드와 다음 노드로 구성되어있다. 선행 노드에 접근하기 위해 전체 리스트를 순회해야 하는 문제를 보완하기 위해 이중 연결 리스트가 있다. 좀 더 확대된 개념으로, 다중 연결 리스트(Multi Linked List)라는 말도 쓰인다. 특징 양쪽 방향으로 쉰회할 수 있도록 노드가 연결되어 있다. 두 개의 링크필드와 한 개의 데이터 필드로 구성되어있다. 장점이 크므로 이중 연결 리스트를 많이 사용한다. 장점과 단점 장점 연속적인 탐색이 이루어져야 하는 경우 탐색 시간을 줄일 수 있다. 삽입이나 삭제 연산이 빠르다.(접근 시작 위치 설정에 따라) 단점 포인터를 위.. 2022. 4. 21.
[DS/자료구조] 연결 리스트 - 원형 연결 리스트(Circular Linked List) 원형 연결 리스트(Circular Linked List) 원형 연결 리스트는 일반적인 연결 리스트에 마지막 노드와 처음 노드를 연결시켜 원형으로 만든 구조이다. 원형 연결 리스트에서 head는 마지막 노드를 가리키게 된다. 이렇게 되면 head의 첫 노드와 마지막 노드에 접근이 쉬워진다. 특징 헤드 노드의 link는 마지막 노드를 가리킨다. 헤드 노드의 link의 link는 첫 번째 노드가 된다. 리스트의 마지막에 노드를 삽입, 삭제가 용이해진다. 현재 노드에서 이전 노드를 접근하려면 첫 번째 노드부터 다시 접근해야 한다. 장점과 단점 장점 한 노드에서 다른 모든 노드로의 접근이 가능해 노드의 삽입, 실제가 단순해진다. 반복적인 순회에서 연결 리스트의 끝을 체크해야 할 필요가 없다. 구조상 끝이 존재하지.. 2022. 4. 21.
[DS/자료구조] 리스트 - 배열 리스트와 연결 리스트 배열 리스트와 연결 리스트 리스트(List) 리스트는 자료를 순서대로 저장하는 자료구조이다. 리스트를 구현하는 방법에는 배열을 이용하거나 포인터를 이용하여 리스트를 구현할 수 있다. 기본적인 기능으로는 리스트 생성, 원소 추가, 원소 반환, 원소 제거(리스트 초기화), 리스트 삭제로 볼 수 있다. C언어의 경우 리스트를 지원하지 않는 대신 배열을 지원한다. 즉, 리스트를 사용하려면 직접 만들거나 라이브러리를 사용해야 한다. - 리스트의 대표 기능 엘리먼트를 추가/삭제하는 기능 리스트에 데이터가 있는지 체크하는 기능 모든 데이터에 접근할 수 있는 기능 배열 리스트(ArrayList) 배열은 인덱스와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적.. 2022. 4. 17.
728x90
반응형