线性单向链表

//首先定义一个结构体
typedef struct Node
{
    int data;
    int data2;
    Node *next;  //此处应当将next理解为一个对象,所以这是指向下一个节点(对象),而不是指向自己
}Node;

Node *List = nullptr;

//创建一个链表
//参数 L: 需要创建的链表, n: 创建节点的个数
void CreateList(Node **L, int n)
{
   //定义ptr 指向*L, L传入的是一级指针变量的地址,所以*L为传入的一级指针所指向的变量的地址(即&List)
   //有了List的地址后,就能操作整个链表
    Node *ptr = *L;      
    Node *p;                      //定义新节点 p
    for (int i = 0; i < n; i++)
    {
        p = new Node;             //为p申请内存
        p->data2 = 2;           
        p->data = 1;
        ptr->next = p;            //将新节点插入到原链表中
        ptr = p;                  //节点后移
    }
    ptr->next = nullptr;          //将最后一个节点指向nullptr
}

int main(void)
{
    CreateList(&List, 10);  //创建一个长度为10的单向链表
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。