数据结构-链表实现删除全部特定元素x

时间:2023-03-09 01:29:32
数据结构-链表实现删除全部特定元素x

链表节点类定义:

 template <class T>
class SingleList;
template <class T>
class Node
{
private:
T element;
Node<T> *link;
friend class SingleList<T>;
};

链表类定义:

 template <class T>
class SingleList :public LinearList<T>
{
public:
SingleList()
{
first = NULL;
n = ;
}
~SingleList();
bool SM_Delete(T x);
private:
Node<T>* first;
};

删除特定元素X的成员函数:

方法一:

 template<class T>
bool SingleList<T>::SM_Delete(T x)
{
Node<T> *p;
int j = ;
p = first;
while (p)
{
for (j = ; p&&p->element != x; j++)
p = p->link;
if (p)
{
Delete(j);
p = first;
}
else
return false;
}
return true;
}

方法二:

 template<class T>
bool SingleList<T>::SM_Delete(T x)
{
for (Node<T>** cur = &first; *cur;)
{
Node<T>* entry = *cur;
if (entryement == x)
{
*cur = entry->link;
free(entry);
}
else
cur = &entry->link;
}
}

相关文章