考考你双向链表熟悉程度,help me ,please
DuLnode.rar
(216.58 KB)
我已经想了两个晚上了,逼不得已才请教大家,双向链表都弄不清楚,实在是愧对党和人民对我的关爱
一直卡在插入这里。
void Du_init( DuLinkList L ){
L = (DuLinkList)malloc(sizeof(DuLnode));
L->prior= NULL;
L->next = NULL;
L->data=0;
}
void Du_insert(DuLinkList L , int i , ElemType e ){
DuLinkList p,q=L->next;
int k;
if( L->data == 0 )
{
p = (DuLinkList)malloc( sizeof(DuLnode) ) ;
p->data = e ;
p->next = NULL ;
p->prior =L;
L->next=p;
printf("\n插入第一个数据成功.\n");
L->data++;
return ;
}
//if(i==1){
// p=(DuLinkList)malloc(sizeof(DuLnode));
// p->data = e ;
// p->next = L ;
// p->prior = NULL;
// L->next = p ;
// p->prior = L ;
// printf("\n第一个位置插入数据成功\n");
// L->data++;
// return ;
//}
for( k = 1 ; k < i ; k++)
q=q->next ;
p=(DuLinkList)malloc(sizeof(DuLnode));
p->data = e ;
p->prior = q->prior ; q->prior->next = p ; //在q前面插入节点插入节点
p->next = q ; q->next = p ;
printf("\n插入数据成功.\n");
L->data++;
}