在无头单链表某节点前插入值为data新节点

在无头单链表某节点前插入值为data新节点

思路: 用链表中那个节点(pos)的数据新建一个新节点(pNew),该节点的数据赋值为data,然后让新节点(pNew)的指针(Next)指向(pos)节点的下一个节点,再让该节点(pos)的指针(Next)指向新节点(pNext),完成插入。

代码实现


编译环境(Visual Studio 2017)

  • 函数
// 在无头单链表某节点前插入值为data新节点 
void InsertFront(PNode pos, DataType data)
{
    PNode pNew = NULL;
    if(NULL != pos)
    {
        pNew = BuySListNode(pos->_data);//新建节点函数
        pos->_data = data;
        pNew->_pNext = pos->_pNext;
        pos->_pNext = pNew;
    }
}
  • 测试函数
// 在无头单链表某节点前插入值为data新节点 测试
void InsertFront_test()
{
    PNode pHead = NULL;
    SListInit(&pHead);//初始化单链表
    printf("-----无头单链表插入测试-----------------\n");
    printf("原始链表: ");
    SListPushBack(&pHead, 0);//头插函数
    SListPushBack(&pHead, 1);
    SListPushBack(&pHead, 2);
    SListPushBack(&pHead, 3);
    SListPushBack(&pHead, 4);
    SListPrint(pHead);//单链表的打印函数
    printf("测试结果: \n");
    InsertFront(Find(pHead, 0), 9);
    SListPrint(pHead);
    InsertFront(Find(pHead, 1), 9);
    SListPrint(pHead);
    InsertFront(Find(pHead, 2), 9);
    SListPrint(pHead);
    InsertFront(Find(pHead, 3), 9);
    SListPrint(pHead);
    InsertFront(Find(pHead, 4), 9);
    SListPrint(pHead);
    printf("\n");
}
  • 测试结果

测试结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值