不想写完了 其他查找什么 基本原理都差不多 不想写完了
#include <iostream>
class List_xd
{
private:
class Node
{
public:
int value_xd;
Node* next;
Node():next(NULL)
{
}
explicit Node(int val):value_xd(val),next(NULL)
{
}
int getvalue()
{
return value_xd;
}
};
Node* head_xd;
public:
List_xd()
{
head_xd=new Node;
}
Node* add(int val)
{
Node* temp=new Node(val);
temp->next=head_xd->next;
head_xd->next=temp;
return temp;
}
int length()
{
int len=0;
Node* p;
for(p=head_xd->next;NULL!=p;p=p->next)
{
len++;
}
return len;
}
void clear()
{
Node* temp;
for(temp=head_xd->next;NULL!=temp;temp=head_xd->next)
{
head_xd->next=temp->next;
std::cout<<"delete:"<<temp->value_xd<<std::endl;
delete temp;
}
}
~List_xd()
{
clear();
delete head_xd;
}
Node* insert(int pos,int val)
{
if(pos<0||pos>this->length())
{
std::cerr<<"xxxxx";
}
else
{
Node* p;
int i=1;
for(p=head_xd->next;i<pos;i++)
{
p=p->next;
}
Node* ins=new Node(val);
ins->next=p->next;
p->next=ins;
return ins;
}
}
};
int main()
{
List_xd x;
for (int i=0;i<10;i++)
{
x.add(i);
}
std::cout<<x.length()<<std::endl;
x.insert(2,30);
x.clear();
std::cout<<x.length();
return 0;
}