본문 바로가기
2022-2/자료구조

4장 - 이중 연결 리스트

by 철없는민물장어 2022. 10. 20.
728x90
반응형

지금까지의 연결 리스트는 한 노드에 링크가 하나였다.

이중 연결 리스트는 이전 노드, 다음 노드를 가리키는 링크가 각각 하나씩, 링크가 총 두개인 노드로 이루어져 있다.

struct node {
	struct node* llink;
	int data;
	struct node* rlink;
};

물론 이중 연결 리스트도 체인형, 원형 둘 다 구현 가능하다


원형 이중 연결 리스트에 노드 추가

 

void dinsert(struct node* node, struct node* newnode) {
	//newnode를 node의 오른쪽에 추가
	newnode->llink = node;
	newnode->rlink = node->rlink;
	node->rlink->llink = newnode;
	node->rlink = newnode;

}

원형 이중 연결 리스트에서 노드 삭제

void ddelete(struct node* deleted) {
	deleted->llink->rlink = deleted->rlink;
	deleted->rlink->llink = deleted->llink;
	free(deleted);
}

삭제할 노드의 왼쪽,오른쪽을 서로 연결시켜주고 삭제할 노드 free 해주기.

728x90
반응형

'2022-2 > 자료구조' 카테고리의 다른 글

5장 TREES  (0) 2022.10.30
동치 알고리즘  (0) 2022.10.20
추가적인 리스트 연산  (1) 2022.10.20
4장 - 연결리스트를 이용한 스택과 큐  (0) 2022.10.14
4장 - List  (0) 2022.10.09

댓글