<h6>🟦首先我们先来个概念了解(什么是单向链表)</h6>
讯享网
单向链表属于链表中的一类,链表是用于数据元素的线性集合,其中每个元素都指向下一个元素,元素存储上并不连续。单向链表的特性是每个元素只知道其下一个元素是谁。
🟦单向链表实现的几个功能汇总

1️⃣创建两个类,一个类是节点类,一个类中实现单向链表的功能
讯享网
有可能一些小可爱们🤗不知道头指针的含义,下面👇是关于头指针的解释

2️⃣实现从链表头部添加的功能void addFirst(int value)
—–>思路分析

将头指针m_Head指向新加进来的节点,新加进来的节点m_Next指针指向原先头指针指向的节点
👇下面就是代码呈现
讯享网
3️⃣实现链表遍历的功能void Loop1() 或void Loop2() (这里提供两种遍历方法)
用while循环实现遍历
用for循环实现链表遍历
讯享网
4️⃣实现从链表尾部添加的功能void addFirst(int value)
思路分析🎇:要从链表尾部添加,首先就要找到最后一个节点,我们可以遍历链表,然后返回最后一个节点,所以我们可以把找最后一个节点封装成一个函数 Node* findLast();


代码呈现

讯享网
5️⃣实现根据索引返回节点的值的功能int get(int index)
思路分析🎇:首先我们需要找到节点,遍历链表找索引,当i等于我们想要找的索引index时,返回节点
再通过get函数找到索引所指向的值
讯享网
❌但是这里存在一个小问题,就是当findNode返回为空的时候不能用exit(0),因为用它是退出整个程序,也就是说在测试时其后面的测试案例都执行不了,但是博主现在能力有限还无法解决这个问题,各位大佬们,有解决方法可以在评论中留言🫶❤️

6️⃣实现向索引位置插入的功能void insert(int index,int value)
思路分析🎇:要向索引为index的位置添加节点,就要找到索引为index-1的节点,让其的m_Next指针指向要添加的节点,要添加的节点的m_Next指针指向原先索引为index的节点

7️⃣实现删除第一个节点的功能void removeFirs()
思路分析🎇:头指针m_Head指向m_Head->m_Next

讯享网
8️⃣实现根据索引删除节点void remove(int index)
思路分析🎇:用findNode函数找到索引为index-1的节点,让其m_Next指向索引为index的m_Next
🎉🎉🎉关于单链表的功能就已经全部实现了,将其功能都封装在SinglyLinkedList这个类中
讯享网
这篇blog到这里就已经结束了🎉🎉🎉,创作不易,还望各位多多支持,想要点赞,关注,收藏❤️🫶😘🥰🥳

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/144107.html