#pragma once
#ifndef ___Node2
#define ___Node2
//Node2.h : 이중연결리스트 노드를 나타내기 위한 클래스
#include <cstdio>
class Node2 {
Node2* prev; //선행 노드를 가리키는 포인터 변수
Node2* next; //후속 노드를 가리키는 포인터 변수
int data; //데이터 필드
public:
Node2(int val = 0) : data(val), prev(NULL), next(NULL) {}
Node2* getPrev() { return prev; }
Node2* getNext() { return next; }
void setPrev(Node2* p) { prev = p; }
void setNext(Node2* n) { next = n; }
void display() { printf(" <%2d>", data); }
bool hasData(int val) { return data == val; }
//자신의 다음에 새로운 노드 n을 삽입하는 함수
void insertNext(Node2* n) {
if (n != NULL) {
n->prev = this;
n->next = next;
if (next != NULL) next->prev = n;
next = n;
}
}
//현재 노드를 연결 리스트에서 제거한는 함수
Node2* remove() {
if (prev != NULL) prev->next = next;
if (next != NULL) next->prev = prev;
return this;
}
};
#endif // !___Node2
'Programming > DS SorceCode' 카테고리의 다른 글
LinkedDeque.h : 연결된 덱 클래스 (0) | 2019.03.24 |
---|---|
DblinkedList.h : 이중 연결 리스트 클래스 (0) | 2019.03.24 |
LinkedList.h : 단순 연결 리스트 클래스 (0) | 2019.03.23 |
Node_Int : 연결된 큐를 위한 int형 클래스 + 연결 리스트로 구현된 리스트를 위한 노드 클래스 (0) | 2019.03.23 |
ArrayList.h : 배열을 이용한 리스트 클래스 구현 (0) | 2019.03.23 |