//首先带头双链表定义
typedef struct dnode{
int data;
struct dnode *prior,*next;
}dnode,*dlinklist;
//初始化注意l->prior=null;l->next=null;判断是否为空只需判断next,因为头结点没有prior
//其次在某个结点插入,注意p是否为表尾
bool insert(dnode *p,dnode *p){
if(p=NULL||s=NULL){
return false;
}
s->next=p->next;
while(p->next!=NULL){
p->next->prior=s;
}
s->prior=p;
p->next=s;
return true;
}
//最后删除
bool delete(dnode *p){
if(p=NULL){return false;}
dnode *q=p->next;
if(q=NULL){return false;}//p无后继结点
p->next=q->next;
while(q->next!=NULL){
q->next->prior=p;}
free(p);
return true;
}
遍历操作不写了,放在下面。
另外我需要加速了,无论一个点会不会,都要先听完课,然后再敲代码,并且只打关键部分