Programación de estructura de datos, el primer nodo de una lista enlazada individualmente se mueve desde el principio hasta el final de la tabla
Es urgente, lo antes posible.
Programación de estructura de datos, el primer nodo de una lista enlazada individualmente se mueve desde el principio hasta el final de la tabla
#include
usando el espacio de nombres std;
struct Linklist
{
int data;
Lista de enlaces *next;
};
Lista de enlaces *L,*rear;
void create()//método de inserción final Crear una lista enlazada
{
Linklist *p;
int x;
cout<<"Ingrese los elementos de la lista enlazada ( ingrese en orden ascendente): "
while(cin>>x&&x!=0)
{
if(L==NULL)
{
L=nueva lista de enlaces;
L->data=x;
rear=L;
L- >next=NULL ;
}
else
{
p=nueva lista de enlaces;
p- >datos=x ;
trasero->siguiente=p;
p->siguiente=NULL;
trasero=p;
} p>
}
rear->next=NULL;
}
void del(int x)//Eliminar los datos valor de campo x Nodo
{
Lista de enlaces *p,*k,*t;
k=p=L;
mientras (p !=NULL)
{
if(p->datos==x)
descanso;
k=p ;
p=p->siguiente;
}
if(p==L)
{
p=L;
L=L->siguiente;
eliminar p;
}
si no (p= =posterior )
{
k->siguiente=NULL;
eliminar p;
}
else if (p==NULL)
{
cout<<"Ningún nodo con valor "< } más { k->next=p->siguiente; eliminar p; } } void insert(int x)//Inserte el nodo con el valor del campo de datos x (la lista enlazada original está organizada en orden ascendente de forma predeterminada) { Lista de enlaces *s,*p,*k; s=nueva lista de enlaces; s->data=x; s->siguiente=NULL; k=p=L; while(p!=NULL) { si (p->datos>=x) descanso;< /p> k=p; p=p->siguiente; } si(p==L) { L=s; s->next=p; } si no (p== NULL) { k->next=s; } más { p> k->siguiente=s; s->siguiente=p; } } nulo salida()//Salida de la lista enlazada { Lista de enlaces *p; p=L; cout<<" Lista enlazada Los elementos en son: "; while(p!=NULL) { cout< p=p->siguiente; } cout< } void LinkListDemo() { // L es una lista enlazada individualmente de nodos sin cabeza Linklist *q, *p,*t;//El puntero p es se usa para indicar el final del nodo de la lista enlazada original (es decir, an), el puntero q se usa para indicar el nodo principal original (es decir, a1) q=L; si ( q && q->siguiente ) { t=q;//Apunte el puntero q a a1 L=L->siguiente;/ /Apunte el puntero L al encabezado del nuevo punto de lista enlazada (es decir, a2) rear->next=q; q->next=NULL; t=NULL; } } void main() { crear (); salida() ; int x; cout<<"Ingrese el elemento a insertar:"; cin>>x; insert (x); salida(); cout<<"Ingrese el elemento a eliminar:"; cin>>x; del(x); salida(); LinkListDemo(); salida(); }