double linked list 를 구현했다.
헤더는 항상 첫번째 node를 향하고 있다.
push_back 메소드는 맨 뒤에 노드를 추가시켜준다.
#include <iostream>
using namespace std;
class Node{
friend class double_linked;
private:
int value;
Node* next_node;
Node* pre_node;
public:
Node(int v, Node* n, Node* p){
value = v;
next_node = n;
pre_node = p;
}
};
class double_linked {
private:
Node* head;
int size;
public:
double_linked(){
size =0;
head = NULL;
}
void push_back(int value){
Node* new_node = new Node(value, NULL, NULL);
if(head==NULL){
head=new_node;
new_node->next_node =new_node;
new_node->pre_node = new_node;
}else{
new_node->next_node = head;
new_node->pre_node= head->pre_node;
head->pre_node->next_node = new_node;
head->pre_node = new_node;
}
size++;
}
void search(){
Node* temp= head;
for(int i=0; i<size; i++){
cout<<temp->value;
temp=temp->next_node;
}
cout<<endl;
}
};
int main(){
double_linked a;
for(int i=0; i<10; i++){
a.push_back(i);
}
a.search();
system("pause");
return 0;
}
0123456789
댓글