题目
                
                单链表中结点的结构为(data,link),若想删除结点p(不是头节点或者尾结点)的直接后继,则应执行下列哪个操作
A.p=p->link ; p->link=p->link->link
B.p->link->link=p->link;
C.p=p->link->link
D.p->link=p->link->link
                    解答
                
                参考答案:D.
选择D 
  删除类型的 出现两次,答案是同样的 
删除结点操作
删除操作是将单链表的第i个结点删除。先检查删除位置的合法性,然后查找表中第i-1个结点,即被删结点的前驱结点,再将其删除。其操作过程如图2-7所示。
    图2-7 单链表结点的删除
假设结点*p为找到的被删结点的前驱结点,为了实现这一操作后的逻辑关系的变化,仅需修改*p的指针域,即将*p的指针域next指向*q的下一结点。
实现删除结点的代码片段如下:
p=GetElem(L,i-1);  //查找删除位置的前驱结点
q=p->next;  //令q指向被删除结点
p->next=q->next  //将*q结点从链中“断开”
free (q) ;  //释放结点的存储空间和插入算法一样,该算法的主要时间也是耗费在查找操作上,时间复杂度为O(n)。
            
                
                    
不过还有待完善,挺好的,不错的资源。