谈起链表,还是原来在学校里上《数据结构》的时候,自己动手写了一套完整的代码,现在想起来都不知道丢哪里去了。不过那个时候写的东西都是些基本的链表操作,昨天偶然碰到了两个新鲜一点的:一个是将链表反向,另外一个稍微难点,合并两个已经排好序的链表,当然要求合并后的链表仍然有序呀!
下面给出链表的基本数据结构:
另外再加一个添加节点的操作,这样方便验证接下来要实现的功能。
添加节点:
显示整个链表:
销毁整个链表:
第一个操作是链表的反向,这个比较简单:
第二个是合并已经排好序的链表,我用了两种方法来实现这个功能,递归和普通的方式:
递归实现如下:
非递归实现如下:
下面是一段简单的测试程序: