链表_头插、尾插

 

 

                                      

头插法

生成新结点,将数据存至新结点数据域,将新结点插入当前表头(先将新结点s的next取代原来头结点C的next,再将s赋给C的next也就是连上s)。

 

void createlistF(LNode *&C,int a[],int n)
{
    LNode *s;
    int i;
    C=(LNode*)malloc(sizeof(LNode));//申请C的头结点空间
    C->next=NULL;
    for (i=0;i<n;i++)
    {
        s=(LNode*)malloc(sizeof(LNode));
        s->data=a[i];
        s->next=C->next;//将原来头指针C所指向的下一个结点的地址,赋给新创建结点s的next
        C->next=s;//将而s成功插入C的后面
    }
}

 

尾插法

void createlistR(LNode *&C,int a[],int n)
{
    LNode *s,*r;//r始终指向C的终端结点
    int i;
    C=(LNode *)malloc(sizeof*(LNode));
    C->next=NULL;//此时,整个链表只有一个头结点有效,因此C此时既是头结点,又是尾结点
    r=C;
    for(i=0;i<n;i++)
    {
        s=(LNode *)malloc(sizeof(LNode));
        s->data=a[i];
        r->next=s;//s插入
        r=r->next;//r始终指向终端端结点
    }
    r->next=NULL;//装完了,设置终端结点的指针域为NULL
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值