[C언어 자료구조] 이중연결리스트 - 개념, 구조체, 삽입 및 삭제 알고리즘

Romy·2022년 4월 29일
0
post-thumbnail

이중 연결 리스트

☑️ 개념

  • 양방향으로 연결되어 있는 연결 리스트
  • 노드를 탐색하는 방향이 양쪽으로 가능
  • 노드가 이전 노드(previous)와 다음 노드(next)로 구성

☑️ 구조체

typedef doubleListNode {
char data[5];
struct doubleListNode* llink;
struct doubleListNode* rlink;
} doubleListNode

☑️ 노드삽입

insertD(D, p, q){
	//이중연결리스트D에서, 기존노드p 다음에, 새로운노드q를 삽입
	
	//새로운노드 link 세팅
	q->llink = p;
	q->rlink = p.rlink;
	
	//기존노드 세팅
	p->rlink = q;
	p->rlink->link = q;

}

☑️ 노드삭제

deleteD(D, p){
	//이중연결리스트D에서 삭제할노드p
	if(p==NULL) return;
	p.llink.rlink = p.rlink;
	p.rlink.llink = p.llink;
	returnNode(p)
}
profile
👩‍💻 IT Engineering

0개의 댓글

관련 채용 정보