C 示例中的链表

  • 本文关键字:链表 c linked-list
  • 更新时间 :
  • 英文 :


我在教科书上找到的在C中使用链表的示例遇到了一些问题。

startlistint值的链接列表,这段代码应该检查每个int值,如果它小于X,则将其放入lowlist,如果大于X,则将其放入highlist

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;

为什么它们是必要的?

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

线条

tempList->next = lowList;

tempList->next = highList;

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

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

整个循环是关于以排序方式将新节点前置/附加到链表中。

相关内容

  • 没有找到相关文章

最新更新