相关代码 |
|
2.31② 假设某个单向循环链表的长度大于1,且表 中既无头结点也无头指针。已知s为指向链表中某个 结点的指针,试编写算法在链表中删除指针s所指结 点的前驱结点。 实现下列函数: ElemType DeleteNode(LinkList s); /* 删除指针s所指结点的前驱结点,并返回被删结点的元素值 */ 单链表类型定义如下: typedef struct LNode{ ElemType data; struct LNode *next; } LNode, *LinkList; ElemType DeleteNode(LinkList s) /* 删除指针s所指结点的前驱结点,并返回被删结点的元素值 */ { LinkList p,q; ElemType e; for(p=s,q=s->next->next;q!=s;p=p->next,q=q->next); e=p->next->data; p->next->next=NULL; free(p->next); p->next=q; return e; }
相关资源 |
|