Try   HackMD

2025q1 Homework2 (quiz1+2)

contributed by < nyraa >

quiz 1-1

list_insert_before函數完整的實作填充完之後如下:


static inline void list_insert_before(list_t *l,
                                      list_item_t *before,
                                      list_item_t *item)
{
    list_item_t **p;
    for (p = &l->head; *p != before; p = &(*p)->next)
        ;
    *p = item;
    item->next = before;
}

是利用雙重指標相後迭代,直到找到指向 before 的指標,也就是 before 的上一個節點的 next 指標,然後將 item 插入。

延伸問題

實作合併排序

quiz 1-2

quiz 1-3

quiz 2-1

quiz 2-2