C++递归创建链表

注意事项:

  1. 修改一个空间的指向需要传递该空间的地址指针

  1. 结构体指针在没有分配空间前可以 . ->出成员,但没有实际意义

  1. 需要对一个结构体求大小时,malloc中传结构体大小,并不是结构体指针的大小,虽然它返回的是指针类型

/*

node* ptr = NULL;//定义一个node*类型的指针,但没有分配空间

ptr = new node;//给ptr分配空间,只有分配空间后才能使用

ptr->data = 1;

*/

main.cpp

#include"test.h"


void list::creat(node** _node, int* array, int& index, int size){
    if (index > size)
    {
        return;
    }
    node* tmp = new node;
    *_node = tmp;
    (*_node)->data = array[index];
    index++;
    creat(&(*_node)->next, array, index, size);
    
    /*
    node* ptr = NULL;//定义一个node*类型的指针,但没有分配空间
    ptr = new node;//给ptr分配空间,只有分配空间后才能使用
    ptr->data = 1;
    */

    return;
}

test.cpp

#include"test.h"


void list::creat(node** _node, int* array, int& index, int size){
    if (index > size)
    {
        return;
    }
    node* tmp = new node;
    *_node = tmp;
    (*_node)->data = array[index];
    index++;
    creat(&(*_node)->next, array, index, size);
    
    /*
    node* ptr = NULL;//定义一个node*类型的指针,但没有分配空间
    ptr = new node;//给ptr分配空间,只有分配空间后才能使用
    ptr->data = 1;
    */

    return;
}

test.h

#include<iostream>
using namespace std;

typedef struct node {
    node()
        :next(NULL)
        ,data(0)
    {}
    node* next;
    int data;
}node;

class list {
public:
    list()
        :_head(NULL)
    {}
    void creat(node** node,int*array,int& index,int size);
public:
    node* _head;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值