赞
踩
在开始学习前,可以先看看我之前关于单链表的一些内容:http://t.csdnimg.cn/sUSUb
接下来,我们来写查找函数:
代码实现如下:
- SLTNode* SLTFind(SLTNode* phead, SLTDataType x)
- {
- SLTNode* cur = phead;
- while (cur)
- {
- if (cur->data == x)
- {
- return cur;
- }
- cur = cur->next;
- }
- return NULL;
- }
运行结果如下:
此外,SLTFind可以充当修改的作用
- if (pos)
- {
- pos->data *= 10;
- }
整体代码如下:
- SLTNode* pos = SLTFind(plist, 3);
- if (pos)
- {
- printf("找到啦\n");
- }
- else
- {
- printf("找不到\n");
- }
- //SLTFind可以充当修改的作用
- if (pos)
- {
- pos->data *= 10;
- }
-
- PrintSLT(plist);
运行结果:
接下来我们写在pos位置之后插入x
// 分析思考为什么不在pos位置之前插入?
//因为pos之前插入,并不知道pos之前那个的地址
- // 单链表在pos位置之后插入x
- void SListInsertAfter(SListNode* pos, SLTDateType x)
- {
- assert(pos);
-
- SListNode* newnode = BuySListNode(x);
- newnode->next = pos->next;
- pos->next = newnode;
- }
// 分析思考为什么不删除pos位置?
// 不知道pos前的next
紧接着来写 删除pos位置之后的值
- // 单链表删除pos位置之后的值
- void SListEraseAfter(SListNode* pos)
- {
- assert(pos);
- assert(pos->next);
- //pos->next == pos->next->next;
-
- SListNode* posNext = pos->next;
- pos->next = posNext->next;
- }
这节课的内容就到这里啦,希望大家可以提出你们的宝贵意见。我一定会悉心听取。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。