Colección de citas famosas - Slogan de motivación - Clasificación de listas enlazadas en lenguaje C

Clasificación de listas enlazadas en lenguaje C

#Include "stdafx.h"

#Include "stdlib.h"

//Crea un nodo con datos como valor y apuntando a NULL.

nodo * Crear (int valor) {

Nodo * cabeza = (Nodo *) malloc (tamaño de (Nodo)); value;

head-》next = NULL;

returnhead

}

//Destruye la lista enlazada

bool destruir _ Lista (Nodo * cabeza) {

Nodo * temperatura;

mientras (cabeza)

temp = cabeza-》siguiente;

Gratis (head);

head = temp

}

head = NULL

returntrue

}

//Agrega un nodo después de la tabla, crea (valor)

boolapend (Nodo * encabezado, valor int) {

Nodo* n= Crear(valor);

Nodo * temp = cabeza

mientras (temp-》siguiente) {

temp = temp-》siguiente;

}

temp-》next = n;

return0

}

//Imprimir lista de enlaces

void print _ Lista (Nodo * cabeza ) {

nodo * temp = cabeza-》siguiente;

cuando (temperatura) {

printf( "% d-》", temp-》datos);

temp = temp-》siguiente

}

printf(" \ n "

}

// Inserta el nodo creado Create(value) después del nodo de posicionamiento en la lista vinculada (el primer nodo es 0).

boolInsert_List(Nodo * cabeza, intlocate, valor int) {

Nodo * temp = cabeza

nodo * p;

Nodo *n=Crear(valor);

Si (localizar <0)

returnfalse

mientras (localizar-){

if (temp-》siguiente == NULL ){

temp-》siguiente = Crear(valor);

returntrue

}

temp = temp-》siguiente;

}

p = temp-》siguiente;

temp-》siguiente = n;

n-》next = p;

returntrue

}

//Eliminar los nodos después del nodo posicionado (el primer nodo es 0)

p>

bool eliminar _ Lista (Nodo * cabeza, int localizar) {

Nodo * temp = cabeza

nodo * p;

if ( Posicionamiento <0)

returnfalse

mientras (locate-) {

if (temp == NULL ) {

returnfalse

}

temp = temp-》siguiente;

}

p = temp-》siguiente-》siguiente;

free(temp-》siguiente);

temp-》siguiente = NULL;

temp-》siguiente = p;

returntrue

}

//Obtener la longitud de la lista vinculada (excluyendo el nodo principal)

int size _ Lista (Nodo * encabezado) {

Nodo * temp = cabeza

int tamaño = 0;

mientras(temp-》siguiente){

temp = temp-》siguiente;

size++;

}

returnsize

}

//Tres tipos de listas enlazadas (selección, inserción y difusión)

boolSort _ Lista(Nodo * cabeza) {

intt = 0;

int Tamaño = Tamaño _ Lista(cabeza

/ /Seleccione ordenar

/* for (Node * temp = head-》next; temporal! = NULLtemp = temp-》siguiente ) {

for (Nodo * p = temp; p! = NULLp = p-》siguiente ) {

if (temperatura-》datos》p -》datos) {

printf("cambiar % d y % d \n", temp-》datos, p-》datos

t = temp-》datos);

temp-》datos = p-》datos;

p-》datos = t

}

}

}*/

//Clasificación por inserción

/* para (Nodo * temp = encabezado-》siguiente-》siguiente; temporal! = NULLtemp = temp-》 siguiente ){

f

o (Nodo * p = cabeza; p-》siguiente!= NULLp = p-》siguiente) {

if (p-》siguiente-》datos》temp-》datos)

{

printf ("cambiar % d y % d \ n", temp-》datos, p-》siguiente-》datos

t = temp-》datos);

temp-》datos = p-》siguiente-》datos

p-》siguiente-》datos = t;

}

}

}*/

//Clasificación de burbujas

para (Nodo * temp = encabezado-》siguiente; temporal-》siguiente! = NULLtemp = temp-》siguiente ) {

for (Nodo * p = cabeza-》siguiente; p-》siguiente! = NULLp = p-》siguiente ) {

si (p-》 datos》p-》siguiente-》datos) {

t=p-》datos;

p-》datos = p-》siguiente-》datos

p-》siguiente-》datos = t

}

}

}

return0

}

Datos extendidos:

Regresar significa transferir el flujo del programa de la función llamada a la función principal y devolver el valor de la expresión a la función principal, para realizar el devolución del valor de la función, el valor de retorno puede ir acompañado del valor de retorno, y el valor de retorno se especifica mediante el parámetro después del retorno.

La devolución suele ser necesaria porque el resultado del cálculo suele aparecer mediante el valor de retorno cuando se llama a la función. Si la ejecución de la función no necesita devolver resultados de cálculo, a menudo es necesario devolver un código de estado para indicar si la ejecución de la función fue exitosa (-1 y 0 son los códigos de estado más utilizados. La función de ajuste principal puede juzgar el). estado de ejecución de la función de ajuste a través del valor de retorno.