용어 정의
연결 리스트에서 각 요소는 노드라고 함. 노드는 다음 노드를 가리키는 포인터를 가짐
구현 예시
// 양방향 구현 예시
struct Node {
Node *prev, *next;
string name;
Node(string name_="") : prev(NULL), next(NULL), name(name_) {}
}
Node *nil;
void Init() {
nil = new Node();
nil->prev = nil;
nil->next = nil;
}
void PrintNode() {
Node *cur = nil->next;
for(; cur != nil; cur=cur->next) cout << cur.name << endl;
}
void Insert(Node *node, Node *parent = nil) {
node->next = parent;
parent->next->prev = node;
node->prev = parent;
parent->next = node;
}
void Erase(Node *node){
if(node == nil) return;
node->prev->next = node->next;
node->next->prev = node->prev;
delete node;
}