请妥善解释.不要只写定义.还解释它的作用以及它与细分的不同之处.
如何删除集合的最后一个元素,或创建一个没有最后一个元素的新集合?集合不支持索引。我有一组整数,想删除最大的。
我编写了一个在单链表上实现合并排序的函数,其中每个元素都有一个整数和一个下一个指针.其中一个功能splitlist用于将给定的链表拆分为两个链表
void splitList(struct node* source, struct node** frontRef, struct node** backRef)
{
struct node *s, *f;
s = source;
f = s->next;
while(f && f->next)
{
s = s->next;
f = f->next->next;
}
*frontRef = source;
f = s->next;
s->next = NULL;
*backRef = f;
}
Run Code Online (Sandbox Code Playgroud)
这里source是指向给定链表的指针,frontRef和backRef是指针的引用,需要通过这个函数赋值.fronRef应该引用第一个链表,而backreef应该引用第二个链表.此代码在行时给出分段错误
*frontRef = source;*backRef = f;
被替换为
frontRef =&source; backRef =&f;
我无法理解其原因,因为这两组语句彼此相同