void LinkList::Remove_num(int i) //删除中间第i个结点(前后结点都在)
{
ListNode *p,*pn;
if(i!=-1&&(this->Length())>3)
{
p = FindIndex(i-1);
pn = FindIndex(i+1);
delete FindIndex(i); //先删除,后指下一结点
p->next = pn;
}
else
{
cout<<"the length of chain is not long enough"<<endl;
}
}
int LinkList::Length()
{
ListNode *p=first->next;
int count=0;
while(p!=NULL)
{
p=p->next;
count++;
}
return count;
}
ListNode* LinkList::FindIndex(const int i) //查找第i个结点
{
ListNode *p;
if( i == -1 || i>(this->Length())) return first;
p=first->next; //
int j=0;
while( p !=NULL && j < i )
{
p=p->next;
j++;
}
return p;
}