在一个单链表中,若p所指结点是q所指结点的前驱结点,则删除结点q的正确操作是( )

лл
2025-01-07 02:28:31
推荐回答(3个)
回答1:

p->next = q->next;

free(q);

q->next表示结点中存放的指针,该指针用来指向某个结点。原来的连接关系是q->next=p,意思是q中存放的指针的值是p,即q指向p。

s->next = p->next ;

p->next = s;

t = p->data;

p->data =s->data;

s->data =t;

扩展资料:

链表的具体存储表示为:

① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)

② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))

链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。

参考资料来源:百度百科-单链表

回答2:

因为p所指结点是q所指结点的前驱结点,也就是p---->next=q;要想删除结点q,则只需将P---->next =q---->next 即可

回答3:

p->next = q->next;
free(q);