王道书P40 T4(单链表实现)
时间:2022-11-20 10:00:00
/** * 用链表实现 王道P40 T4 * * ①算法思想: * 设置指针 p 和 p 的前驱指针 pre , * 设置指针 Minp 和 Min 的前驱指针 Minpre , * 让 p 从 L -> next 开始遍历,不断更新 Minp 和 Minpre 的值,最后,删除操作。 * * ②数据结构: * typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; * * ③算法设计 */ #include #include typedef struct LNode{ int data; struct LNode* next; }LNode,*LinkList; void DeleteMinValue(LinkList &L){ LinkList p = L -> next,pre = L;//保持前驱 pre LinkList Minpre = pre,Minp = p;///最小值的前驱和最小值(相当于count) while(p){ if(p -> data < Minp -> data){ Minp = p;///找到最小值节点 Minpre = pre;/////找到最小值节点的前驱 } //然后向后遍历 pre = p; p = p -> next; } //找到最小值后删除(如果最小值是最后一个,那么 Minpre 的 next 就指向 NULL) Minpre -> next = Minp -> next; free(p); }