?? 2.31.c
字號:
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;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -