C示例中的链接列表

时间:2016-01-26 11:32:31

标签: c linked-list

我在教科书上找到一个在C中使用链接列表的例子时遇到了一些问题。

startlistint值的链接列表,这段代码应检查每个int值,如果小于{{1,则将其放入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;

为什么他们有必要?

1 个答案:

答案 0 :(得分:0)

显然,lowListhighList分别包含链接列表的最低和最高节点。

tempList->next = lowList;

tempList->next = highList;

tempList的下一个元素分别设置为最低和最高元素。

您正在谈论的行将tempList设置为新的最低/最高节点。 tempList现在是第一个/最后一个元素,指向旧的头/尾。

整个循环是以排序的方式将新节点预先添加/附加到链表。

相关问题