我在教科书上找到了一个示例,在使用C中的链接列表时遇到了一些问题。startlist
是int
值的链接列表,这段代码应检查每个int
值,如果小于lowlist
则将其放入X
或如果大于highlist
则将其放入X
>。
while(startList != NULL){
if (startList->value < X){
tempList = (List) malloc(sizeof(Item));
tempList->value = startList->value;
tempList->next = lowList; lowList = tempList;
}
else{
tempList = (List) malloc(sizeof(Item));
tempList->value = startList->value;
tempList->next = highList; highList = tempList;
}
startList = startList->next;
}
我不明白以下几行:
lowList = tempList;
和
highList = tempList;
为什么有必要?
最佳答案
显然,lowList
和highList
分别包含链表的最低和最高节点。
线
tempList->next = lowList;
和
tempList->next = highList;
将
tempList
的下一个元素分别设置为最低和最高元素。您正在讨论的行将
tempList
设置为新的最低/最高节点。 tempList
现在是第一个/最后一个元素,指向旧的头/尾。整个循环是关于以排序方式将新节点添加/添加到链表中。
关于c - C示例中的链接列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35012866/