创建单向链表

算法描述1:正向创建单向链表(尾插方式)

//创建链表节点
typedef struct node
{
    int data;
    struct node *next;
}ElemSN;
//创建单向链表
ElemSN* CreatLink(int a[], int n)
{
    int i;
    ElemSN *ptail = NULL, *p = NULL, *h = NULL;
    for (i = 0; i < n; i++)
    {
        p = (ElemSN*)malloc(sizeof(ElemSN));
        //初始化数据域,初始化指针域
        p->data = a[i];
        p->next = NULL;
        if (!h)//判断是否有头结点没有,创建头结点
        {
            h = p;
            ptail = h;
        }
        else
        {
            ptail->next = p;//挂链
            ptail = ptail->next;//挪尾指针
        }
    }
    return h;
}

算法描述2:反向创建单向链表(头插方式)


//创建节点方式与正向建链相同
ElemSN* CreatLink(int a[], int n)
{
    ElemSN *p = NULL, *h = NULL;
    for (int i = n; i > 0; i--)
    {
        p = (ElemSN*)malloc(sizeof(ElemSN));
        //初始化指针域,数据域
        p->next = NULL;
        p->data = a[i - 1];
        p->next = h;//头插
        h = p;//挪头指针
    }
    return h;
}

算法描述3:递归的方式创建单向链表日后会补上的

这里写代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值