Código fuente de datos de lista vinculada
#include<iostream>
¿Usar? ¿Espacio de nombres? estructura estándar
? ¿nodo?
{?
int? a;?
¿Nodo? *?Próximo;?
};
int? norte;? //Número de nodos en la lista enlazada
¿Nodos? *?crear()?
{?
estructura? ¿nodo? *?l;?
estructura? ¿nodo? *?p 1;?
n=0;?
L=? ¿Nuevo? Nodo;
p1=? ¿Nuevo? Node;
cout & lt& lt"¡Ingrese un número entero y presione la tecla Enter, ingrese 0 y luego presione la tecla Enter para finalizar la entrada!"& lt& ltendl
CIN >>p 1->a?
l-& gt;next = NULL
while(p 1->;answer!=0)//a=0 ¿salir?
{
n++;?
si(n==1)?
l-> siguiente = p 1;?
p 1->siguiente=nuevo? nodo;?
CIN>>p 1->Siguiente->a?
p 1 = p 1->; next;
}?
p 1->; next = NULL // Señala el final de la lista enlazada. a nulo?
retorno(L);?
}
¿Anulado? Print (node?*?L)//Debido a que los parámetros reales pasados son tipos de puntero, los parámetros formales también deben definirse como tipos de puntero.
{?
¿Nodo? *pag;?
cout & lt& lt" \ nLos datos de entrada son "
p = L-& gt;
Y (p!=NULL)?
{?
cout & lt& ltp->;a & lt& ltendl?
p = p->Siguiente;?
}
}
¿Nulo? Insertar (nodo?*?l, int?I, int?e)
{
¿Nodo? *p, *temp
int? j;
p = L-& gt;Next;
for(j = 1;j<i?&&?p!= NULLj++)
p = p ->Siguiente;?
Si (i & gtj)
{
cout & lt& lt"Solo lista enlazada"
Regresar;
}
temp = p->siguiente;
p->siguiente=nuevo? Nodo;
p->;Siguiente->a = e;
p = p->Siguiente;
p-> ;siguiente = temp
n++;?
}
int? principal()?
{?
¿Nodo? *?l; //Dado que la función creat() devuelve un puntero a una estructura, ¿debería definirse como una variable de puntero que apunta a una estructura?
l = crear();?
Imprimir (izquierda);
Insertar (L, 3, 3);
Imprimir (izquierda);
¿Volver? 0;// Inserte el nodo con valor e en la posición I-ésima de la lista enlazada individualmente con l como nodo principal.
? ¿Implementar # include
usando? ¿Espacio de nombres? estructura estándar
? ¿nodo?
{?
int? a;?
¿Nodo? *?Próximo;?
};
int? norte;? //Número de nodos en la lista enlazada
¿Nodos? *?creat()?
{?
estructura? ¿nodo? *?l;?
estructura? ¿nodo? *?p 1;?
n=0;?
L=? ¿Nuevo? Nodo;
l-> siguiente = NULL
p1=? ¿Nuevo? Node;
cout & lt& lt"¡Ingrese un número entero y presione la tecla Enter, ingrese 0 y luego presione la tecla Enter para finalizar la entrada!"& lt& ltendl
CIN >>p 1->a?
mientras(p 1->; Respuesta?!=0)//a=0 ¿salir?
{
n++;?
si(n==1)?
l-> siguiente = p 1;?
p 1->siguiente=nuevo? nodo;?
CIN>>p 1->Siguiente->a?
if(p 1->; siguiente-> a==0)
descanso;
p 1 = p 1->;
}
p 1->; next = NULL//¿Apuntar el final de la lista vinculada a nulo?
retorno(L);?
}
¿Anulado? Imprimir(nodo?*?l)
{?
¿Nodo? *pag;?
cout & lt& lt" \ nLos datos de entrada son "
p = L-& gt;
Y (p!=NULL)?
{?
cout & lt& ltp->;a & lt& ltendl?
p = p->Siguiente;?
}
}
¿Nulo? Insertar (nodo? *? l, int? I, int? E) //i: el nodo I-ésimo, donde e es el valor insertado.
{
¿Nodo? *p, *temp
int? j;
p = L;
for(j = 0; j & lti?& amp& amp?p->; siguiente?! = NULLj++)
p = p->Siguiente;?
Si (i & gtj)
{
cout & lt& lt"Solo lista enlazada"
Regresar;
}
temp = p->siguiente;
p->siguiente=nuevo? Nodo;
p->;Siguiente->a = e;
p = p->Siguiente;
p-> ;siguiente = temp
n++;?
}
int? principal()?
{?
¿Nodo? *?l;
l = crear();?
Imprimir (izquierda);
Insertar (L, 3, 4);
Imprimir (izquierda);
¿Volver? 0;
}