#include <iostream>
using namespace std;

#ifndef LINKEDLISTNODE_CLASS_INCLUDED
#define LINKEDLISTNODE_CLASS_INCLUDED

/*
	Linked List Node Class
	LastModification : 2008. 5. 5
	Version : 1.0.0
	myllyj(myllyj at myllyj dot com) / http://program.myllyj.com

	Requirements:
		must use with LinkedList Class

	Comment:
		LinkedListÀÇ Node Class.
		½ÇÁ¦·Î ÀÌ Å¬·¡½º·Î ÇÒ ¼ö ÀÖ´Â ÀÛ¾÷Àº ¾ø´Ù.
		namespace·Î ¹­´Â´Ù¸é ÀÌ Å¬·¡½º´Â ÇØ´ç ³×ÀÓ½ºÆäÀÌ½º¿¡¼­
		privateÀÌ³ª friend¼Ó¼º¸¸ °¡Áö¸é ÃæºÐÇÏ´Ù.

*/

// ¼±¾ð¸¸
template <class T> class LinkedList;

template <class T>
class LinkedListNode
{
friend class LinkedList<T>;

private:
	LinkedListNode<T>* prev;
	LinkedListNode<T>* next;
	T data;
	bool isEmpty;

public:
	LinkedListNode();
	LinkedListNode(T data);
};

template <class T>
LinkedListNode<T>::LinkedListNode()
{
	prev = NULL;
	next = NULL;
	isEmpty = true;
}

template <class T>
LinkedListNode<T>::LinkedListNode(T data)
{
	prev = NULL;
	next = NULL;
	this->data = data;
	isEmpty = false;
}

#endif