首页 > 代码库 > define a class for a linked list and write a method to delete the nth node.
define a class for a linked list and write a method to delete the nth node.
1、问题
define a class for a linked list and write a method to delete the nth node.
2、算法
template <typename C>
struct Node{
C content ;
Node<T>* next ;
}
template <typename T>
class List{
private:
Node<T>* head ;
unsigned int size ;
public:
List()
{
size = 0 ;
head = NULL ;
}
bool insert(const T& data)
{
Node<T>* node = new Node<T> ;
node->content = data ;
node->next = head;
head = node ;
size++ ;
return true ;
}
bool insert(const T&data, int pos)
{
if( pos > size )
{
return false ;
}else if( pos == 0 )
{
return insert(data) ;
}
Node<T>* node = new Node<T> ;
node->content = data ;
node->next = NULL ;
unsigned int idx = 1 ;
Node<T>* frontNode = head ;
while(idx < pos)
{
idx++ ;
frontNode = frontNode->next ;
}
node->next = frontNode->next ;
frontNode ->next = node ;
size++ ;
return true ;
}
bool remove( int pos )
{
if( pos > size )
{
return false ;
}
unsigned int idx = 0 ;
Node<T>* frontNode = NULL ;
Node<T>* node = head ;
while(idx < pos)
{
idx++ ;
frontNode = node ;
node = node->next ;
}
frontNode->next = node->next ;
delete node ;
size-- ;
return true ;
}
}
define a class for a linked list and write a method to delete the nth node.