c - 我的时间表计划中的任何建议

标签 c arrays struct

我创建一个结构来保存类(class)表:

struct timetable_t {
    int id;
    int weekday;
    float start_time;
    float end_time;
    int start_week;
    int end_week;
    int is_even;
    char* name;
    char* location;
};

typedef struct t_class {
    struct timetable_t t;
    struct t_class* pre;
    struct t_class* next;
}CLASS;

以下是数据:

static struct timetable_t timetable[] = {
    {113172, 1, 10.10, 12.00, 3, 17, 2, "PE", "B-410"},
    {121172, 1, 14.00, 15.50, 1, 17, 2, "English", "B-101"},
    {131172, 1, 16.00, 18.00, 1, 17, 2, "Music", "B-101"},
    {141132, 1, 18.30, 20.30, 2, 13, 2, "Science", "C2-207"},
};

创建双链接列表

CLASS* create_class(struct timetable_t* arr, int len) {
    int i;
    CLASS* head = NEW(1);
    CLASS* p = head;
    CLASS* t = NULL;
    for (i = 0; i < len; ++i) {
        t = NEW(1);
        t->t.id = arr[i].id;
        t->t.weekday = arr[i].weekday;
        t->t.start_time = arr[i].start_time;
        t->t.end_time= arr[i].end_time;
        t->t.start_week = arr[i].start_week;
        t->t.end_week = arr[i].end_week;
        t->t.is_even = arr[i].is_even;
        t->t.name = arr[i].name;
        t->t.location = arr[i].location;
        t->pre = p;
        p->next = t;
        p = p->next;
    }
    head->pre = p;
    p->next = head;
    return head;
}

现在,如果我想获取当前的类(class),我在程序中使用 linklist 双链表来组织数据,通过比较当前的“hour.day”。那么问题来了,如果当前类为NULL,有没有简单的方法来获取下一个类。

最佳答案

我这样做的方法是让 head 成为全局的。然后提供一个函数来遍历列表(从头开始)以获得您想要的内容。所以你可以计算、get_next、get_next_by_value之类的东西。

关于c - 我的时间表计划中的任何建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20189232/

相关文章:

c - 为什么此 C 代码片段不会导致段错误?

c - 我正在编写这个程序来查找单个数字中的两位数奇数,但我被困住了

c - 重命名(更合适): header guard would cause struct compile error

Javascript 将用户输入存储到数组中

c - 线程亲和性也限制内存分配?

JAVA:文字游戏查询

php - 如何在忽略键的同时组合两个 PHP 数组

c - 返回 DMA 地址的结构指针

c - 目标文件的多重定义

c - 如何将一系列整数分配给结构中的指针var