65,210
社区成员
发帖
与我相关
我的任务
分享
class DoubleList
{
public:
DoubleList():head( new DoubleNode <T>() )
{
}
DoubleList( const DoubleList<T>& list )
{
DoubleNode<T>* p = list.head;
DoubleNode<T>* pPre = NULL;
DoubleNode<T>* pCur = new DoubleNode<T>();
while( 1 )
{
pCur->data = p->data;
pCur->left = pPre;
if( p->right )
pCur->right = new DoubleNode<T>();
else
{
pCur->right = NULL;
break;
}
p = p->right;
pPre = pCur;
pCur = pCur->right;
}
}
//我自己添加的函数,用于在链表尾部添加节点,用来测试
void Add( T item )
{
if( head )
{
DoubleNode<T>* p = head;
while( p->right )
p = p->right;
p->right = new DoubleNode<T>( item );
p->right->left = p;
}
else
{
head = new DoubleNode<T>( item );
}
}
private:
DoubleNode <T> *head;
};