Red de conocimiento informático - Descarga de software - Utilice el método C para realizar las operaciones de establecimiento, inserción, eliminación e inversión de una tabla lineal secuencial. Y use la función principal para verificarla e implementarla en la computadora.

Utilice el método C para realizar las operaciones de establecimiento, inserción, eliminación e inversión de una tabla lineal secuencial. Y use la función principal para verificarla e implementarla en la computadora.

#includelt;iostreamgt;

usando el espacio de nombres std;

typedef int ElemType;

struct NodeType

{

datos ElemType

NodeType *siguiente

}

clase LinkList

{

privado:

NodeType *Head;

público:

LinkList() //Construcción

~LinkList (); //Destrucción

void create(); //Crear tabla

void insert(); //Insertar

ElemType eliminar(); /p>

void display();

void inverse(); //Función inversa

};

//Crear una lista enlazada vacía

LinkList::LinkList()

{

Head=new NodeType;

Head-gt; next=NULL;

Head-gt;data=0;

}

LinkList::~LinkList()

{

NodeType *p=Head-gt; next;

//Hacer que el puntero p apunte al primer nodo de la lista enlazada

while(p!=NULL)

{

Head-gt; next=p-gt; next;

//Hacer que el puntero principal apunte al siguiente nodo de p

eliminar p;

p=Head-gt;next;

//Hacer que el nodo p apunte al nodo señalado por el puntero principal

}

eliminar encabezado;

//Finalmente elimina también el nodo principal

coutlt;lt;"¡La lista vinculada ha sido eliminada!"lt;lt;endl;

}

void LinkList::display()

{

Tipo de nodo *p;

p=Cabeza -gt; siguiente;

while(p!=NULL)

{

coutlt;lt;p-gt;datalt;lt;" ";

p=p-gt;

}

coutlt; void LinkList::create() //Elementos de la lista con enlace inverso

{

NodeType *s

ElemType x

coutlt; ;lt;"Ingrese un conjunto de datos y finalice con -10 Finalizar. "lt;lt;endl;

cingt;gt;x; //Ingresar elementos de datos.

while(x!=-10)

{

s=new NodeType; //Solicitar dinámicamente un nodo

s -gt; data=x; //Asignar un valor al campo de datos del nodo

s-gt; next=Head-gt; //Hacer que s apunte al primer nodo

Head-gt; next=s; //Hacer que el nodo principal apunte al nodo s recién aplicado

coutlt;lt;"Elemento de entrada: "lt;lt;endl;

cingt ;gt;

void LinkList::insert()

{

coutlt;lt;"La posición donde se insertará el elemento:"lt ;lt;endl;

int i;

cingt;gt;i;

coutlt;lt;"El elemento a insertar: "lt;lt ;endl;

ElemType x;

cingt; x;

NodeType *p, *q, *s; /p>

int k=1;

p=Head; //Deje que p apunte al nodo principal

q=p-gt; //Deje q apunte al primer nodo

while( klt;i amp;amp; q!=NULL)

{

p=q;

q=q-gt;next;

k ;

}

if(k==i) //implementar inserción

{

s=nuevo NodoType ;

s-gt;data=x;

p-gt;next=s;

s-gt;next=q;

coutlt;lt;"¡Registro insertado exitosamente!"lt;lt;endl;

}

else

coutlt;lt;"¡Error al insertar el registro! ";

}

ElemType LinkList::delet()

{

coutlt;lt;" Introduzca el elemento que desea eliminar: "lt;lt;endl;

int x;

cingt;gt;x;

Tipo de nodo *p, *q;

Tipo de elemento y;

int k=1

p=Cabeza

q=p-gt; siguiente;

mientras(q!=NULL amp;amp; q-gt;data!=x)

{

p=q;

q=q-gt ; siguiente

}

if(q-gt; datos==x)

{

y=q-gt;

p-gt; siguiente=q-gt;

eliminar

coutlt; "Registro eliminado exitosamente

excepto!"lt;lt;endl;

}

else

{

coutlt;lt;"x no existe" lt ;lt; endl;

y=-1;

}

devuelve y;

}

void LinkList::inverse() // Inversa de la lista enlazada

{

NodeType *p, *q;

p=Head-gt; ; //Dejemos que p apunte al primer elemento

Head-gt; next=NULL //Dejemos que el campo de puntero de Head esté vacío

while(p!=NULL)

{

q=p-gt; next; // Deja que q apunte al segundo elemento

p-gt; next=Head-gt; // Deja que el campo de puntero de p esté vacío

Head-gt; next=p

p=q

}

}

void main()

{

Lista de enlaces h

h.create(); > h.display();

h.delet();

h.display()

h.insert();

h.display();

coutlt;lt;"Invertir los elementos de la lista enlazada"lt;lt;endl;

h.inverse();

h.display();

}