//头删
Doublelink del_head(Doublelink head)
{//判断条件
if(NULL==head)
return head;
Doublelink del=head;
head=head->next;
free(del);
del==NULL;
return head;
}
//尾插
Doublelink insert_tail(Doublelink head,datatype element)
{ //创建一个节点
Doublelink p=create_Node();
//判断条件
if(NULL==head)
{ head=p;
return head;
}
//定义一个头节点,找到尾部
Doublelink s=head;
while(s->next!=NULL)
{
s=s->next;
}
//把创建的新节点指向找到的尾部
p->next=s;
s->prev=p;
return head;
}
//尾删
Doublelink del_tail(Doublelink head)
{ //先找到最后一个数
Doublelink p=head;
while(p->next!=NULL)
{
p=p->next;
}
//把最后一个数的前一个节点指向NULL然后释放最后一个节点
//链表中只有一个节点会报错
if(p->prev!=NULL)
{
p->prev->next=NULL;
free(p);
p=NULL;
}
return head;
}
//遍历
void output(Doublelink head)
{
//判断条件
if(NULL==head)
return ;
else
{
Doublelink s=head;
//正序排列
while(s->next!=head)
{
printf("%c ",s->data);
s=s->next;
}
printf("%c \n",s->data);
}
}