服装行业的竞争状况:数据结构
来源:百度文库 编辑:高校问答 时间:2024/04/28 22:23:38
双链表的插入操作
void DInsertBefore(DListNode *p,DataType x)
{//在带头结点的双链表中,将值为x的新结点插入*p之前,设p≠NULL
DListNode *s=malloc(sizeof(DListNode));//①
s->data=x;//②
s->prior=p->prior;//③
s->next=p;//④
p->prior->next=s;//⑤
p->prior=s;//⑥
}
为什么一些语句不是这样
p->prior=s->prior;//③
p=s->next;//④
s=p->prior->next;//⑤
s=p->prior;//
void DInsertBefore(DListNode *p,DataType x)
{//在带头结点的双链表中,将值为x的新结点插入*p之前,设p≠NULL
DListNode *s=malloc(sizeof(DListNode));//①
s->data=x;//②
s->prior=p->prior;//③
s->next=p;//④
p->prior->next=s;//⑤
p->prior=s;//⑥
}
为什么一些语句不是这样
p->prior=s->prior;//③
p=s->next;//④
s=p->prior->next;//⑤
s=p->prior;//
你的4,5,6都是没用的,应该改变的是链表里的指针,但你这三行改变的是外部的指针,你只是让他们指向了别的地方,链表里的指针没有改变。