求c++单向链表程序

来源:百度知道 编辑:UC知道 时间:2024/05/12 14:01:47
已知技术参数和设计要求 1、主要参数:空链表、表头。
2、完成以下的操作:插入链表项、追加链表项、连接两个链表、将各链表项逆向输出、返回链表的数据项数、输出一个已生成的链表。
3、要应用以下知识点:类的定义、对象的定义、构造函数及其重载、友元类、使用new动态创建对象。
急!多谢!

#include <iostream>
using namespace std;

class Node
{
friend class List;
private:
Node() : m_data(0), m_pNext(NULL) {}
Node(int data, Node* next = NULL)
: m_data(data), m_pNext(next) {}

private:
int m_data;
Node* m_pNext;
};

class List
{
public:
List() : m_pHead(NULL), m_pTail(NULL), m_nLength(0) {}
List(int nLength, int InitData = 0, int nStep = 0) : m_nLength(nLength)
{
for (int i = 0; i < nLength; i++)
{
Node* pNode = new Node(InitData);
if (i == 0)
{
m_pHead = m_pTail = pNode;
}
else
{
m_pTail->m_pNext = pNode;
m_pTail = pNode;
}
InitData += nStep;
}
}

List(const List& list) : m_pHead(NULL), m_pTail(NULL), m_nLength(0)
{
Copy(list);
}

~List()
{
Free();
}

bool I