1.已知非空线性链表由list指出,链结点的构造由(data,link),data是数据域,link是链域。请写一算法,将链表中数据最小的那个链结点移到链表的最前面。要求:不得额外申请新的结点。
我们以带头结点的链表为例,因为要将数据最小链结点移到链表的最前面,也就是要在链表头插入一个新结点,这里我们需要两个指针,一个指向链表头,一个指向链表头指向的下一个链结点。将链表中最小数据的链结点移到最前面也就意味着要删除该链结点,同样需要两个指针,一个指向最小数据的链结点,一个指向(指向最小数据的链结点)的链结点,也就是最小数据链结点的前置链结点。算法实现如下:
void move(List &l){
List pre = l,p = l->