zoukankan      html  css  js  c++  java
  • 多目标遗传算法 ------ 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  指向 的个体空间释放。

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

  • 相关阅读:
    【2021-04-15】台上一分钟,背后十年功
    【2021-04-14】买了人生中的第一个车位
    计算机网络实验部分
    乘积最大子数组
    计算各个位数不同的数字个数
    周总结
    最长回文子序列
    最长回文串
    回文子串
    拼图
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/6262206.html
Copyright © 2011-2022 走看看