代码如下: void Del X LinkList amp L,ElemType x LNode p if L NULL return if L gt data x p L L L gt next free p Del X L,x 位置 else Del X L gt next,x 位置 我们的疑点是递归操作中好像只进行了删除操作,而没有改变被删除结点的前驱,使其指向被删除结点的下一个结点。 例如 ...
2013-10-28 22:56 1 9061 推荐指数:
转自:http://blog.csdn.net/xlf13872135090/article/details/8857632 Node *head; //声明头结点 带头结点初始化 void InitList(Node **head ...
算法复杂度0(n) 结果: [5, 3, 2, 8][5, 3, 8] ...
不带头结点的单链表的插入操作和带头结点的插入操作基本相同,只是需要把插在第一位的情况单独拎出来考虑,即单独讨论 i = 1 的情况。 if ( i == 1 ) { LNode *s = ( LNode * ) malloc ( sizeof ( LNode ...
本篇文章的代码大多使用无头结点的单链表: 相关定义: 相关函数的定义: 由上面可以看出,只要是涉及到头指针发生改变的,我们在函数中都是传入指向头指针的指针。就像我们在swap函数中要交换a和b的值,我们是传入地址,而现在我们要改变头指针的值,也必须要 ...
void deleteLinkList(LinkList *&L){ LinkList *p=L->next,*s,*q; while(p!=NULL){ q=p; while(q->next!=NULL ...