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