[bo]以下是引用 [un]sunkaidong[/un] 在 2008-2-18 20:11 的发言:[/bo]
LZ你的答案也没错....xianshizhe111是个很好的朋友.互相学习.共同进步
我写了验证的小代码...
#include"stdio.h"
#include"malloc.h"
struct Node {
int i;
struct Node *pPrev;
struct Node *pNext;
};
ma ...
有劳您费神还写一个程序,其实分析这个的时候,一般画个图把,比较直观;
Step0 = [n1]<->[n2/pDel]<->[n3] : 初始化
Step1 = [n1]->[n3], [n2]<-[n3] : pDel->pPrev->pNext = pDel->pNext;
Step2 = [n1/pDel]->[n3], [n2]<-[n3] : pDel = pDel->pPrev;
Step3 = Remove ==> ([n1/pDel]->[n3], [n2]<-[n3]) : delete pDel->pNext->pPrev;
Step4 = [pDel] <== ([n1/pDel]->[n3], [pDel]<-[n3])->[n3] : pDel = (pDel->pNext-pPrev = pDel)->pNext;
毕竟不是用笔画,可能有点难看懂
其中->表示后继结点,<-表示前驱结点
==> 表示操作施加(左边操作名,右边数据)
<== 数据传输
, 表示两个操作分割