试看指针再数据结构中的巧妙应用(一)

本文通过解决舍友在学习链表时遇到的具体问题,深入解析了如何使用指针来建立头结点与新增节点之间的联系。文章重点介绍了指针在链表构造中的巧妙运用,并解释了指针赋值与普通变量赋值的区别。

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

    一、问题背景:

            舍友在学习链表的定义时,出现了无法建立头结点与新增节点之间联系的问题,经分析,发现了指针在解决该问题中的十分巧妙的应用。

    二、问题重述与归结

            

            问题出现在代码行22,23,33,34。

   {

        headp = newp;

        tailp = newp;

//然后又重新更新了newp  

        newp = (node *)malloc(sizeof(struct node));

        tailp->next = newp;

        tailp = newp;

    }

            以上的代码,出现了两个指针等于一个指针,然后又对其中一个指针进行操作,最后更是出现了更加让人难以理解的指针更新。于是该问题总结归述为:在用三个互相联系的指针之间的关系处理。

        三、问题解析

            

            图例中我们看到,当headp与tailp都指向了n节点的时候,操作tailp就相当于操作了n节点,相应的headp的性质也随之改变。

            在这里我们要说明的是,在普通变量的赋值与操作中,改变一个变量的性质对其他变量是没有任何影响的,而在指针操作中是大不相同的。数据结构里的很多算法都是为了能够简便的实现操作,利用指针进行大量的优化是十分常见的。

            时刻理解所有的指针的意义。




PS:初来驾到,这是第一篇博客,其实也不算什么博客,只不过是在学习中的一点小突破,小成就,希望能够一直坚持写下去。

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值