赞
踩
///删除,删除指定位置的值,或者删除给定的值 //情形一:删除指定结点的后继结点 //情形二:删除第i个结点,假定头结点的i=0 //删除返回这个目标结点的地址,并不涉及到动态空间的回收 //在动态回收空间的要求中,应该遵循的原理是谁污染,谁治理 //在顺序表中的删除就是逻辑上的删除,也就是说我们的这个结点不再存在于当前的顺序表中了 ///删除结点 :Ptr是需要删除的结点,将删除ptr的后继节点 LinKListNode *delete_After_LkList(LinKListNode *ptr) { LinkListNode *fptr; //假定我们的顺序表的链接A->B->C,我们要删除的是A的后续结点B,A->C fptr = ptr->pNext; //ptr是A,所以ptr的next是B,所以fptr是B ptr->pNext = fptr->pNext; //ptr是A,fptr是B,所以fptr的next是C,所以ptr的next就变成了C return fptr; } ///删除第i个结点 Link List Node *Delete_i_LinkList(LinkListNode *pHead,int i) { LinkListNode *ptr,*qPtr=NULL; ptr = GetLinkListNode(pHead,i-1); //找到i的前继结点 if(ptr!=NULL &&ptr->pNext!=NULL) { qPtr = Delete_After_LkList(ptr)j; } return qPtr; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。