Dos formas de crear listas vinculadas unidireccionales en la serie de aprendizaje sobre estructura de datos

  • Método 1:
  • Al 返回值devolver el solicitado 头结点所在的内存空间首地址, es decir, crear el nodo principal de la lista enlazada unidireccional, el código es el siguiente:
  • Código de muestra:
node_t *create_link_node_1(){
    
    

    node_t *phead = (node_t *)malloc(sizeof(node_t));
    if(NULL == phead){
    
    

        printf("内存分配失败\n");

        exit(-1);

    }
    //或者memset(phead, 0, sizeof(node_t));
    phead->data = -1;
    phead->next = NULL;

    return phead;

}
  • Precauciones:
  • 1. Después de asignar el espacio de direcciones de memoria del nodo principal, asegúrese de verificar 内存分配是否成功;
  • 2. Si falla la asignación de memoria del nodo principal, es necesario utilizarla shell命令exit(-1)退出;
  • 3. Para la lista enlazada unidireccional 每个结点都有数据域和指针域y 头结点的数据域可以不储存任何数据para el nodo principal 数据域en esta función 被赋值 -1,;
  • 4. Para el nodo principal 指针域被赋值 NULL, representa la lista enlazada unidireccional en este momento 只有一个头结点;
  • Método 2:
  • El método utilizado para 地址传参crear el nodo principal de la lista enlazada unidireccional, el código es el siguiente:
  • Código de muestra:
int create_link_node_2(node_t **phead,int data){
    
    

    if(NULL == phead){
    
    


        printf("入参为NULL\n");

        return -1;

    }

    *phead = (node_t *)malloc(sizeof(node_t));

    if(NULL == *phead){
    
    


        printf("内存分配失败\n");

        return -1;

    }
     //或者memset(*phead, 0, sizeof(node_t));
    (*phead)->data = data;
    (*phead)->next = NULL;

    return 0;

}
  • Precauciones:
  • 1. El parámetro pasado debe ser 二级指针变量porque 二级指针用来存储一级指针变量的地址, a saber 所申请的单向链表头结点在内存空间的地址;
  • 2. Después de pasar los parámetros formales a la función que crea el nodo principal de la lista enlazada unidireccional, se debe hacer 入参合理性检查;
  • 3. Igual que el método 1, después de asignar el espacio de direcciones de memoria del nodo principal, asegúrese de verificar 内存分配是否成功;
  • 4. Nodo principal 数据域被赋值 -1;
  • 5. Nodo principal 指针域被赋值 NULL;

Supongo que te gusta

Origin blog.csdn.net/qq_41878292/article/details/132650574
Recomendado
Clasificación