双向链表的实现与测试

为什么要写这篇

前几天写的对链表添加尾结点指针,只是对于在链表尾部插入效率高了一些,但是对于从链表尾部删除效率还是原来那样,为什么?因为单向链表指向尾结点的指针只能往后移动,不能往前移动,双向链表就可以解决这个问题。

修改实现的话好修改,感觉更难一点的是该如何测试。根据双向链表,那么应该完成的是既可以由前往后遍历,也该可以由后往前遍历,插入和删除一个结点后应该两种遍历方式都找不到被删除的结点。

对于如何查找链表效率高一些,应该就是二叉树了,不过目前还没怎么接触,之后有时间会实现的。

代码我上传到CSDN上了:two_way LinkedList.zip,本来想详细写写如何实现的,又是如何测试的,没想到下次想起来就是几天之后的事了,还不一定立马有时间写上,干脆有需求的自己去看吧,主要就是在末尾添加和删除结点,以及插入和删除结点,测试双向链表我采用了正向和反向遍历的方式,查看是否插入或删除不干净。

 

猜你喜欢

转载自blog.csdn.net/quanquanxiaobu/article/details/113031897