用你c++写一个链表

来源:百度知道 编辑:UC知道 时间:2024/07/09 02:01:26
要求实现:
1.在链表头,尾以及给定的元素后面实现插入的功能
2.返回链表元素个数的功能
3.删除链表头,链表尾的功能
4.析构函数
5.拷贝构造函数
6.实现堆排序

要求:
1.不可以使用内置的类库或者模板库

真的很急,希望达人帮忙啊.
好的话在加分~~~(绝不食言)

前5点要求基本符合,最后实现排序我不太懂具体含义,所以没写!下面是链表类程序
===============================================================
typedef int T;
class List{
struct Node{ //定义节点结构
T data;
Node* next;
public:
Node(const T& d):data(d),next(NULL){} //拷贝构造函数
};
Node* head;
int len;
public:
List():head(NULL),len(0){} //无参构造函数,初始化列表
~List(){ clear(); } //析构函数,清除处理
void clear(){
while(!empty()){
Node* p=head;
head=head->next;
delete p;
}
len=0;
}
Node*& getp(int index){ //通过下标获取指针
if(index<0||index>len)
index=len;
if(index==0)
return head;
Node* p=head;
for(int i=0; i<index-1; ++i)
p=p->next;
return p->next;