for(int i = 0; i < CACHE_NUM; i++){ raw_head[i] = new raw_list; raw_tail[i] = new raw_list; raw_head[i]->next = raw_tail[i]; raw_head[i]->pre = nullptr; raw_tail[i]->pre = raw_head[i]; raw_tail[i]->next = nullptr; result_head[i] = new result_list; result_tail[i] = new result_list; result_head[i]->next = result_tail[i]; result_head[i]->pre = nullptr; result_tail[i]->pre = result_head[i]; result_tail[i]->next = nullptr; recv_data_cnt[i] = 0; raw_num[i] = 0; processed_num[i] = 0; processing_num[i] = 0; result_num[i] = 0; ordered_num[i] = 0; current_pos[i] = raw_head[i]; ordered_edge[i] = result_head[i]; }
时间: 2024-04-03 12:33:24 浏览: 56
5_3.rar_n平方+n+41
这是一个初始化函数,用于对多个链表进行初始化操作。具体来说,这个函数会创建 `CACHE_NUM` 个双向链表,并对这些链表进行初始化操作,包括:
1. 创建头节点和尾节点,并分别将它们的指针存储在 `raw_head[i]`、`raw_tail[i]`、`result_head[i]` 和 `result_tail[i]` 四个数组中,其中 `i` 的范围是从0到 `CACHE_NUM - 1`。
2. 将头节点的下一个节点指向尾节点,将尾节点的前一个节点指向头节点,从而形成一个空链表。
3. 初始化一些计数器和指针,用于追踪链表的状态和操作。具体来说,这些计数器和指针包括 `recv_data_cnt[i]`、`raw_num[i]`、`processed_num[i]`、`processing_num[i]`、`result_num[i]`、`ordered_num[i]`、`current_pos[i]` 和 `ordered_edge[i]`,其中 `i` 的范围是从0到 `CACHE_NUM - 1`。
4. 将 `current_pos[i]` 指向 `raw_head[i]`,将 `ordered_edge[i]` 指向 `result_head[i]`。
这样,我们就可以向这些链表中添加数据或者从这些链表中删除数据了。
阅读全文