Muchas veces el de salida orden ascendente pero un solo elementos de la lista con enlaces en cada nodo, y libera el espacio de almacenamiento ocupado por el nodo (no permitidos en la matriz como un espacio auxiliar)

Pubmed práctica la primera pregunta

Título: Dada una lista única con un nodo de cabeza, previsto para la primera puntero cabeza, la estructura de nodos (datos, próximos), datos enteros elementos, siguiente puntero, se el siguiente método de ensayo: ascendente muchas veces elemento de orden de salida, pero cada nodo en una única lista enlazada, y libera el espacio de almacenamiento ocupado por el nodo (no permitidos en la matriz como un espacio auxiliar)

Algoritmo idea: para recorrer la lista enlazada, encontrar el valor mínimo de cada iteración, la lista completa de los elementos, y la salida de liberación huella de nodo: encontrar de nuevo la próxima elementos de valor más pequeño, la producción y liberar espacio, y así sucesivamente, hasta que la lista está vacía, el último la liberación del primer nodo ocupado espacio de almacenamiento. La complejidad de tiempo del algoritmo es O (n * n)

void Min_Delete(LinkList &head){
while(head->next!=NULL){//循环到仅剩头节点
	pre=head;//pre为元素最小值结点的前驱结点的指针
	p=pre->next;//p为工作指针
		while(p->next!=NULL){
		if(p->next->data<pre->next->data)
		pre=p;//记住当前最小结点的前驱
		p=p->next;
	}
	print(pre->next->data);//输出元素最小值结点的数据
	u=pre->next;//删除元素值最小的结点,释放结点空间
	pre->next=u->next;
	free(u);
}//while
	free(head);	//释放头节点
}
Publicado 33 artículos originales · ganado elogios 1 · vistas 2041

Supongo que te gusta

Origin blog.csdn.net/m0_45025658/article/details/104957245
Recomendado
Clasificación