链表的这些操作怎么实现啊
IZZO 2020-10-27 08:34:10 typedef int ElementType;
class LinkList
{
private:
class Node
{
public:
ElementType data;
Node * next;
Node():next(0) {}//默认构造函数
Node(ElementType dataValue):data(dataValue), next(0){}//显值构造函数
};
public:
typedef Node * NodePointer;
LinkList(); //构造函数
LinkList(const LinkList & origList);//复制构造函数
~LinkList(); //析构函数
//void release();
const LinkList & operator=(const LinkList & rightSide); //赋值运算符重载
bool empty(); //链表判空
void insert(ElementType dataVal, int index); //在链表指定位置插入节点
void erase(int index); //删除链表中指定位置的节点
NodePointer search(ElementType dataVal); //查找链表中指定值的节点
void display(ostream & out) const;//输出链表节点值
int nodeCount(); //计算节点个数
void reverse(); //链表反转,即尾结点变为链表第一个节点
bool ascendingOrder(); //判断链表是否为升序排列
void ListMerge(LinkList & templist);//链表B合并到链表A末尾 void MergeList(LinkList & listA,LinkList & listB);//链表A和链表B合并到链表C上 ElementType get(NodePointer temp);
private:
NodePointer first; //指向第一个节点的指针
int mySize; //节点的数目