主题:向高手求助数据结构编程题 谢谢
1. 顺序表类SeqList中增加一个成员函数DelMax ( ),其功能是从顺序表中删除具有最大值的元素。空出的位置由最后一个元素填补,表长减1。函数的返回值为被删除元素的值。若顺序表为空,则显示出错信息并退出函数。函数原型如下:
template <class T>
T SeqList<T> ::DelMax ( );
2. n个整数保存在数组A中,试设计一个函数void MoveNumbers(int A[],int n),要求在O(n)时间内,将所有的正数移到负数之前。并且要求除数组A以外,只能使用若干个简单变量。
3.3. 在单链表类SingleList中增加一个成员函数Reverse( ),其功能是将头指针first指向的单链表逆置。若原链表为空,则返回false,否则返回true。模板结点类Node的定义如下:
template <class T>
class Node
{
T data;
Node<T> *link;
Friend class SingleList<T>
};
函数原型为:
template <class T>
bool SingleList<T>::Reverse( )
4. 在以二叉链表表示的二叉树类BinaryTree中增加一个成员函数LeavesInTree( )。该模板函数为递归函数,其功能是求二叉树类BinaryTree的对象中叶子结点的数目。实现该递归函数。函数原型如下:
template <class T>
int BinaryTree<T>::LeavesInTree( )
5. 在二叉搜索树类BSTree中增加一个成员函数DeleteMin ( )。该模板函数的功能删除二叉搜索树BSTree类的对象中元素值最小的结点。被删除的元素值通过引用参数e返回。如果二叉搜索树为空,无法删除则返回false,否则返回true.。实现该模板函数。函数原型如下:
template <class T>
bool BSTree<T>::DeleteMin (T & e);
6. 在带表头结点的单链表上实现简单选择排序。first是头指针,模板结点类Node的定义如下:
template <class T>
class Node
{
T data;
Node<T> *link;
Friend class SingleList<T>
};
template <class T>
void SingleList<T>::SelectSort( );
template <class T>
T SeqList<T> ::DelMax ( );
2. n个整数保存在数组A中,试设计一个函数void MoveNumbers(int A[],int n),要求在O(n)时间内,将所有的正数移到负数之前。并且要求除数组A以外,只能使用若干个简单变量。
3.3. 在单链表类SingleList中增加一个成员函数Reverse( ),其功能是将头指针first指向的单链表逆置。若原链表为空,则返回false,否则返回true。模板结点类Node的定义如下:
template <class T>
class Node
{
T data;
Node<T> *link;
Friend class SingleList<T>
};
函数原型为:
template <class T>
bool SingleList<T>::Reverse( )
4. 在以二叉链表表示的二叉树类BinaryTree中增加一个成员函数LeavesInTree( )。该模板函数为递归函数,其功能是求二叉树类BinaryTree的对象中叶子结点的数目。实现该递归函数。函数原型如下:
template <class T>
int BinaryTree<T>::LeavesInTree( )
5. 在二叉搜索树类BSTree中增加一个成员函数DeleteMin ( )。该模板函数的功能删除二叉搜索树BSTree类的对象中元素值最小的结点。被删除的元素值通过引用参数e返回。如果二叉搜索树为空,无法删除则返回false,否则返回true.。实现该模板函数。函数原型如下:
template <class T>
bool BSTree<T>::DeleteMin (T & e);
6. 在带表头结点的单链表上实现简单选择排序。first是头指针,模板结点类Node的定义如下:
template <class T>
class Node
{
T data;
Node<T> *link;
Friend class SingleList<T>
};
template <class T>
void SingleList<T>::SelectSort( );