【正确答案】正确答案:算法的基本设计思想: 对链表进行遍历,在每趟遍历中查找出整个链表的最小值元素,输出并释放结点所占空间;再查次小值元素,输出并释放空间,如此下去,直至链表为空:最后释放头结点所占存储空间。 算法的代码: VOid MiniDelete(LinkLiSt head){ //head为带头结点的单链表的头指针,本算法按递增顺序输出单链表中 //各结点的数据元素,并释放结点所占的存储空间 while(head一>next!=NULL) //循环到仅剩头结点 { pre=head; //pre为元素最小值结点的前驱结点的指针 p=pre->next; //p为工作指针 while(P一>next!=NULL) { if(p一>next一>data
next一>data) pre=p; //记住当前最小值结点的前驱 P=P一>next; } printf(pre一>next一>data);//输出元素最小值结点的数据 u=pre一>next, //删除元素值最小的结点,释放结点空间 pre一>next=u一>next; free(u); }//while(head->next!=NULL) free(head); //释放头结点 }//MiniDelete