问答题 设有一个由正整数组成的无序(向后)单链表,编写完成下列功能的算法:1)找出最小值结点,且打印该数值。2)若该数值是奇数,则将其与直接后继结点的数值交换。3)若该数值是偶数,则将其直接后继结点删除。【东北大学2000年】
【正确答案】正确答案:算法的基本设计思想: 通过遍历的方式查找最小值结点,当找到最小值结点之后,判断是奇数还是偶数。若是奇数,通过赋值语句交换数值:若是偶数,删除后继结点。 算法的代码: VOid MiniValue(LinkLiSt 1a){ //la是数据域为正整数且无序的单链表,本算法查找最小值结点且打印 //若最小值结点的数值是奇数,则与后继结点值交换;否则,删除其直接后继结点 p=la一>next; //设la为头指针,P为:p作指针 pre=p; //pre指向最小值结点,初始假定首元结点值最小 while(p一>next!=NULL) //p->next是待比较的当前结点 {
【答案解析】