数据结构之循环链表C++
要执行高效的链表,上期已经说过了,把不要的节点放入库节点,下次再用就不需要开辟新的空间。在程序设计中有开辟新的空间,就有释放,我们先把后续释放的内容补上。
如上图,当我们clear的时候留住两个头节点。当然我们这里要用的不是clear函数。不然达不到高效的效果,我们需要的是把不要的节点放入库节点当中。既然如此,我们必要考虑到链表的实用性,一般情况下,链表用于添加,遍历,然后全部删除。
既然要全部删除,那么我们必须修改 LinkNode(Node* target,Node* head)函数,以便于该函数可以链接一个或多个
接下来就是断开函数,也应该是节点串
所有准备工作都做好了,下面就开始写第二核心代码,把节点放入库节点
这样我们就不用调用clear来清空了,直接调用push_libary ,把所有节点放入库,当然有人会问那删除一个怎么办?其实在写完迭代器之后,删除一个就好写了,本身链表就是用迭代器访问遍历的,附上迭代器
最后完善begin end等函数
基本写到这,我认为这个数据结构已经完全够用了,
如果你要写删除单个,或者是添加一串链表之类的功能,还可以扩展
在第三期当中会把链表完善,测试,并上传代码,希望对您有用。