数据结构之链表

本文详细介绍了C语言中单链表的基本结构和操作,包括SListpushBack、SListpushFront、SListNodeinsert、SListInsert等函数的实现,强调了插入和删除操作的关键点,如头插法、尾删法以及特殊情况的处理。同时,提到了查找和输出等基本操作,是C语言数据结构学习的良好参考资料。
摘要由CSDN通过智能技术生成

以下便是链表的基本结构啦~

由数据域和指向这个结点的指针构成;为了更方便的使用,我们可以将它进行重命名为SLTNode。

接下来我们便可以创建一个新的结点;

 通过返回新节点的地址来使使用时更好的连接;

以下便是对SListpushBack,SListpushFront,SListNodeinsert,SListInsert 的代码~

 

1:插入如果如果要改变头指针,一般要用二级指针去接收;

2:插入一般要考虑空链表的情况,插入的位置也要防止传入错误,如NULL;

3:对二级指针一定不能为空并进行断言,防止在此函数中误传一个空的二级指针;

4:插入的过程中新节点连接时,千万要注意连接顺序,不能让插入位置的下一个结点与该位置的联系打断;

5;  头插时,先让新节点与原来的头节点进行联系,再使原头指针指向新的结点;

接下来便是SListPopBack,SListPopFront,SListErase,SListEraseAfter的代码~

 

 

 

 1:尾删因为要创建两个结点,一个指针比另外一个指针为前一个位置;

(尾删,Erase,要考虑只有一个节点的情况);

2:尾删因为找的是链表的最后一个位置,删除之后找不到删除位置的前一个位置,所以要创建另外一个指针Prev记录保存地址;但是像Erase的话他有一个指针pos去保存了地址;

2:在一个特定位置前一个位置进行删除的话,直接创建一个指针tail找位置;先进行与下一个结点的连接再进行删除,提前删除的话,那么结点消除pos->Next值为随机值;

3:删除不是特定位置之后的结点的话,一般要进行找尾或者找删除位置的前一个结点;EraseAfterpop不用找;

4:Eraseafter删除指定位置的下一个位置的话,不但要考虑它下一个位置为空的情况,还要先保存下特定位置中下一个节点的地址;

因为如果是第二种方式的话,pos->next已经改变,就找不到原来要删除结点的地址了;

 5:pos传过来的位置不可能为空的情况,所以防止进行pos传的位置是错误的,要进行断言;

最后便是简单的查找和输出代码了~

 

 最后这便是c语言实现数据结构单链表的增删查改了,让我们超朝着目标方向一起努力吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暂停更新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值