• 多目标遗传算法 ------ NSGA-II (部分源码解析)辅助变量 双链表操作 list.c


     1 /* A custom doubly linked list implemenation */
     2 
     3 # include <stdio.h>
     4 # include <stdlib.h>
     5 # include <math.h>
     6 
     7 # include "global.h"
     8 # include "rand.h"
     9 
    10 /* Insert an element X into the list at location specified by NODE */
    11 void insert (list *node, int x)
    12 {
    13     list *temp;
    14     if (node==NULL)
    15     {
    16         printf("
     Error!! asked to enter after a NULL pointer, hence exiting 
    ");
    17         exit(1);
    18     }
    19     temp = (list *)malloc(sizeof(list));
    20     temp->index = x;
    21     temp->child = node->child;
    22     temp->parent = node;
    23     if (node->child != NULL)
    24     {
    25         node->child->parent = temp;
    26     }
    27     node->child = temp;
    28     return;
    29 }
    30 
    31 /* Delete the node NODE from the list */
    32 list* del (list *node)
    33 {
    34     list *temp;
    35     if (node==NULL)
    36     {
    37         printf("
     Error!! asked to delete a NULL pointer, hence exiting 
    ");
    38         exit(1);
    39     }
    40     temp = node->parent;
    41     temp->child = node->child;
    42     if (temp->child!=NULL)
    43     {
    44         temp->child->parent = temp;
    45     }
    46     free (node);
    47     return (temp);
    48 }
    typedef struct lists
    {
        int index;
        struct lists *parent;
        struct lists *child;
    } list;

    list  结构体中有两个指针,可构成双向链表,数值空间存放   索引序号  。

    insert  函数

    申请一块新的内存空间,放在在 list  指针   指向的空间之后。

    del  函数

    将  list  指向 的个体空间释放。

    以上两个操作在插入,删除操作后都有修改指针操作,保证原有链表 的  上下链接正常。

  • 相关阅读:
    麦茶商务的网站
    jQuery Ajax 实例 ($.ajax、$.post、$.get)
    关于meta知多少
    WebApp之Meta标签
    html5开发之viewport使用
    bootstrap
    8.8&8.9 dp训练小结
    2019.8.10小结
    2019.8.17 小结
    [NOI2001]炮兵阵地 题解
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/6262206.html
Copyright © 2020-2023  润新知