概述
链表指针参数和逻辑的分析。
//已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。 //例如,若集合A = { 5, 10, 20, 15, 25, 30 },集合B = { 5, 15, 35, 25 },完成计算后A = { 10, 20, 30 }。 #include<stdio.h> #include<stdlib.h> struct node { int elem; node* next; }; void difference(node** LA, node* LB) { node *pa, *pb, *pre, *q; pre = nullptr; pa = *LA; //1 while (pa) { pb = LB; while (pb&&pb->elem!=pa->elem) //2 pb = pb->next; if (pb) //不为空,说明有相同的,为空即没有相同的 { if (!pre) //为空 *LA = pa->next; //4 else *LA = pre->next; //5 q = pa; pa = pa->next; free(q); } else { pre=pa; //6 pa = pa->next; } } }
最后
以上就是简单香烟为你收集整理的链表求差的全部内容,希望文章能够帮你解决链表求差所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复