假设以带头结点的单链表表示线性表,单链表的类型定义如下:编写算法,删除值无序的线性表中值最大的元素(设表中各元素的值互不相同)。

假设以带头结点的单链表表示线性表,单链表的类型定义如下:

编写算法,删除值无序的线性表中值最大的元素(设表中各元素的值互不相同)。


【正确答案】:【答案】void delete_MAX(LinkedList head){//设线性表表头结点由指针head指向
if head->next==NULLreturn;
max_P=head->next->next;
max_P_pre=head->next;
current_P=head->next->next;
current_P_pre=head->next;
while(current_P){//找表中最大元素,用指针max_P指向
if(current_P->data>max_P->data)
{max_P=current_P;max_P_pre=current_P_pre;}
current_P_pre=current_P;current_P=current_P->next;}
max_P_pre->next=max_P->next;
free(max_P);//删除表中最大元素
return;}