⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list.c

📁 浙江大学编译原理课程设计源代码,高等院校计算机专业
💻 C
字号:
#include "common.h"static List freenodes;		/* free list nodes *//* append - append x to list, return new list */List list_append(List list, void *x){    List new;    if ((new = freenodes) != NULL)        freenodes = freenodes->link;    else        NEW(new, PERM);    if (list->x)    {        ((List)(list->x))->link = new;    }    if (!list->link)        list->link = new;    list->x = new;    new->link = NULL;    new->x = x;    return new;}/* length - # elements in list */int list_length(List list){    int n = 0;    List lp = list->link;    while (lp != NULL)    {        n++;        lp = lp->link;    }    return n;}/* ltov - convert list to an NULL-terminated vector allocated in arena */void **list_ltov(List list, unsigned arena){    int i = 0;    void **array = (void **)newarray(list_length(list) + 1, sizeof array[0], arena);    if (list)    {        List lp = (list)->link;        while (lp != NULL)        {            array[i++] = lp->x;            lp = lp->link;        }    }    array[i] = NULL;    return array;}/* list_clear - clear list */void list_clear(List list){    freenodes = list->link;    list->link = NULL;    list->x = NULL;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -