1.菜鸟级基础算法:链表遍历

本博客记录了菜鸟奸商在学习链表时的一些笔记,包括如何在带头结点的单链线性表中查找第i个元素以及删除单链表中第i个元素的算法。内容适合编程初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

首先本博客的文章基本都是菜鸟奸商的学习记录,并没有高大上的东西(绝对没有!) 对一般的编程学习者来说应该没什么阅读的意义吧……

如果实在闲的慌想要看话唠或者单口相声倒是可以看一下……TuT

现在的我实在是太菜了……

============================================================================

在刚学习链表时,关于链表的遍历总有一些问题,所以去查了一下书上的算法,然后菜鸟奸商我恍然大悟!(。)下面是阅读时的一些笔记……虽然我觉得只有像我一样菜的菜鸟才觉得这个有记录的必要吧TuT。

发现对自己来说是巧妙的算法时总是很开心很想记录下来。

============================================================================

在带头结点的单链线性表L中,查找第i个元素(C语言)

     由于链表存储空间的不连续性,我们不能直接用p++来访问链表中指针p指向元素的下一个元素,但是我们可以用j计数p=p->next执行的次数,执行一次即为p指向其后面一个元素。这里值得留意的是,在一个单链表中,如果要在第i个元素前插入元素,或删除第i个元素,我们通常只遍历到第i-1个元素,通过修改其后继来实现操作。

示范代码(以删除单链表中第i个元素为例):

Status DeleteLinkListLinkList Lint i

    LinkList p,s;

    p=L;

    int j=0;

       while(p->next&&j<i-1)  //此时找到第i-1个元素

      {

      p=p->next;

      j++;

      }

    if(!(p->next)||j>i-1)

      return ERROR;

   s=p->next;

   p->next=s->next;

   s->next=NULL;

   e=s->data;

   free(s);

   return OK;

}

============================================================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值