#ifndef _LIST_H
#define _LIST_H
#include <iostream>
template<class T>
class Node
{
public:
Node(){}//构造函数
Node(T x,Node<T> *pNext = NULL,Node<T> *pPrev = NULL)
:m_x(x),m_pNext(pNext),m_pPrev(pPrev){}
~Node(){}
T m_x;//x坐标
Node<T> *m_pNext;//前指针
Node<T> *m_pPrev;//后指针
};
template<class T>
class List
{
public:
List()
{
m_pHead = m_pTail = NULL;
}
List(T x)
{
m_pHead = m_pTail = new Node(x);
}
List(List<T> &list);
//析构函数
~List();
//前插节点
bool PushFrontPont(T x);
//后插节点
bool PushBackPoint(T x);
//前出节点
bool PopFrontPoint();
//后出节点
bool PopBackPoint();
//查询节点
Node<T>*FindPoint(T x);
//插入节点
bool InsertPoint(T x, int pos);
//删除节点
bool DeletePoint(T x);
//输出树
void FrontOutPutTree();
//输出树
void BackOutPutTree();
//getfront
Node<T> * GetFront(){return m_pHead; }
//getend
Node<T> * GetEnd(){ return m_pTail;}
bool Empty();
//赋值运算符重载
//friend BitTree<T> & operator= (BitTree<T> &bt);
//加号运算符重载
//friend BitTree<T> & operator+(BitTree<T> &lbt,BitTree<T> &rbt);
// >运算符重载
//friend bool operator> (BitTree<T> &lbt,BitTree<T> &rbt);
// <运算符重载
//friend bool operator< (BitTree<T> &lbt,BitTree<T> &rbt);
private:
Node<T> *m_pHead;//头指针
Node<T> *m_pTail;//尾指针
};
#endif