首先是题目
【问题描述】
请设计一个链表类,实现链表的初始化、插入、删除和打印操作。
节点的定义如下:
typedef int elementType;
typedef struct node
{
elementType data;
node* next;
} LList, *PList;
链表类的定义及要求如下:
class linkedList
{
public:
linkedList();//构造函数
virtual ~linkedList();//析构函数,注意要链表中所有节点的资源
void insert( int value );//警告:必须初始化才能使用!
bool initiate();//初始化单链表,使用new操作创建头结点。如果创建失败,则返回false,否则返回true
bool isEmpty();//判断单链表是否为空
bool remove( int pos, int& value );
//删除单链表中第pos个元素结点,并将删除的节点的值存在value中。
//注意:如果链表为空、删除位置大于链表长度、以及删除位置为0的情况,需要终止删除并输出相应信息
void print();//顺序打印单链表,如果是单链表为空,则输出 Empty
int Length();//返回单链表长度。如果是单链表为空,则返回-1
private:
LList *head;
int len;
};
然后是代码
#include <iostream>
#include <iomanip>
using namespace std;
typedef int elementType;
typedef struct node
{
elementType data;
node* next;
} LList, * PList;
class linkedList
{
public:
linkedList()