#include
using namespace std;
class linkedlist{
struct node{
node*next;
int data;
};
node*head;
int length;
public:
linkedlist():head(),length(){}
~linkedlist();
bool isempty(){return head==0;}
int size()const{return length;}
void clear();
bool find(int index,int&x)const;
int search(const int&x);
void delete_a_element(int k);
void insert_a_element(int k,const int &data);
void travell()const;
};
void linkedlist::clear(){
node*p=head;
node*q;
while(p){
q=p;
delete p;
p=q->next;
}
head=NULL;
length=0;
};
linkedlist::~linkedlist(){
clear();
};
bool linkedlist::find(int index,int&x)const{
if(index>length||index<0){
return false;
}
node*p=head;
for(int i=1;i
}
x=p->data;
return true;
};
int linkedlist::search(const int&x){
node*p=head;
int index=1;
while(p&&p->data!=x){
p=p->next;
index++;
}
if(p){return index;}
return 0;
};
void linkedlist::delete_a_element(int k){
node*p=head;
if(!p||k<0){
cout<<"error1"<
if(k==1){
head=head->next;
length--;
}
else{
node*q=head;
for(int i=1;i
}
if(q&&q->next)
{p=q->next;
q->next=p->next;
}
delete p;
length++;
}
};
void linkedlist::insert_a_element(int k,const int &data){
node*p=head;
if(k>length||k<0){
cout<<"error2"<
if(k==0){
node *q=new node;
q->data=data;
length++;
q->next=head;
head=q;
}
else{
node*q=new node;
q->data=data;
for(int i=1;i
}
q->next=p->next;
p->next=q;
length++;
}
};
void linkedlist::travell()const{
node*p=head;
while(p){
cout<
p=p->next;
}
};
int main(){
linkedlist list;
list.insert_a_element(0,1);
list.insert_a_element(0,2);
list.insert_a_element(0,3);
list.insert_a_element(0,4);
list.insert_a_element(0,5);
list.insert_a_element(0,6);
list.travell();
char c;
cin>>c;
};