Red de conocimiento informático - Descarga de software - Uso de programación en lenguaje C para implementar operaciones básicas de listas enlazadas individualmente

Uso de programación en lenguaje C para implementar operaciones básicas de listas enlazadas individualmente

Los resultados de la ejecución son los siguientes:

El código completo es el siguiente:

#includelt;stdio.hgt;

# includelt;stdlib.hgt;

typedef struct LNode

{

datos de caracteres

LNode *next; p>}* LNodePtr;

LNodePtr CreateList()

{

//Inicializa el nodo principal

LNodePtr head = (LNodePtr )malloc(sizeof(LNode) );

cabeza-gt; datos = 0;

cabeza-gt; siguiente = NULL

LNodePtr tNode; / nodo temporal

datos char;

while(true)

{

scanf("c",amp;data);

if(datos == '\0' || datos == '\n' || datos == '\r' || datos == '\t')

{

continuar;

}

if(data == '!')//Ingrese un signo de exclamación para dejar de insertar nodos

{

printf("Fin del elemento de lista enlazada de entrada.\n");

break

}

if; (datos gt; = 'A' amp; amp; datos lt; = 'Z')

{

tNode = (LNodePtr)malloc(sizeof(LNode)

tNode-gt; datos = datos /* ?Asignación de campo de datos?*/

tNode-gt; siguiente = cabeza-gt; gt; next = tNode;

}

else

{

printf("Los caracteres de entrada deben ser letras mayúsculas.

\n");

}

}

retorno cabeza;

}

/**

Función de cifrado, el método de cifrado consiste en mover todos los nodos vinculados hacia adelante mediante bits de desplazamiento, pero no admite que el desplazamiento sea mayor que el número de nodos en la lista vinculada

@ param head nodo principal de la lista vinculada

@param offset Número de dígitos para mover el nodo hacia adelante

*/

void EncryptList(LNodePtr head, int offset )

{

LNodePtr tNode = head-gt; siguiente

int i

for(i = 0; i lt; ; desplazamiento; i )

{

if(tNode-gt; next != NULL)

{

tNode = tNode- gt; siguiente;

}

p>

}

if(i == desplazamiento)

{

LNodePtr newHead = tNode;

LNodePtr tail = tNode;

while (tail-gt; next != NULL)

{

tail = tail-gt;siguiente;

}

tail-gt; siguiente = head-gt;

while(tNode- gt; siguiente != NULL)

{

if(tNode-gt; siguiente != newHead)

{

tNodo = tNode-gt; siguiente;

}

else

{

tNode-gt; siguiente = NULL; p> romper;

}

}

cabeza-gt; siguiente = nuevaCabeza;

}

else

{

printf("El movimiento no es compatible");

}

}

void ListPrint(LNodePtr cabecera)

{

if(head-gt; next != NULL)

{

LNodePtr tNode = cabecera -gt; siguiente;

mientras (tNodo-gt; siguiente! = NULL)

{

printf("c ",tNodo-gt;datos) ;

tNode = tNode-gt;siguiente;

}

printf("c", tNode-gt; datos

}

}

int main()

{

LNodePtr lista = CreateList();

printf("\nLa lista enlazada creada es la siguiente:\n");

ListP

rint(list);

EncryptList(list, 3);

printf("\nLa lista vinculada después de que todos los nodos avancen 3 bits es la siguiente:\n") ;

p>

ListaImprimir(lista);

printf("\n");

devolver

}

Si no entiendes el código, puedes preguntarme