Escriba la función principal de una lista enlazada unidireccional en lenguaje C. Esta función necesita implementar las siguientes funciones:
usando?namespace?std;
clase?Nodo?{
público:
int?data;
Nodo*?siguiente;
Nodo(int?_data)?{
datos?=?_data;
siguiente?= ?NULL;
}
};
clase?LinkList?{
privado:
Nodo* ?head;
público:
LinkList()?{
head?=?NULL;
}
void?insert(Nodo?*nodo,?int?index)?{
if(head ==?NULL)?{
head =?nodo;
retorno;
}
si?{
nodo->siguiente?=?cabeza;
cabeza?= ?nodo;
retorno;
}
Nodo?*current_node?=?head;
int?count?=?{
current_node?=?current_node->siguiente;
count++;
}
si?{
nodo->siguiente?=?nodo_actual->siguiente;
nodo_actual->siguiente?=?nodo;
}
}
void?output()?{
if(head ==?NULL)?{
return;
}
Nodo ?{
cout?<datos?<" ??" ;
current_node?=?current_node->siguiente;
}
cout?<<
}
void?delete_node(int?index)?{
if( head == NULL)?{
return;
}
Nodo?*current_node?=?head;
int?count ?=?0;
si?{
cabeza?=?cabeza->siguiente;
eliminar?current_node;
regresar ;
}
¿Mientras?(current_node->next?!=?NULL?&&?count?
current_node ?=?current_node->siguiente;
count++;
}
if?(count?==?index?-?1?&&?current_node- >siguiente ?! =?NULL)?{
Nodo?*borrar_nodo?=?current_node->siguiente;
cu
rrent_node->siguiente?=?delete_node->siguiente;
eliminar?delete_node;
}
}
void?reverse( ){
if(head?==?NULL){
return;
}
¿Nodo?*siguiente_nodo,*nodo_actual ;
current_node?=?head->siguiente;
head->siguiente?=?NULL;
mientras(current_node! =?NULL){
siguiente_nodo?=?current_node->siguiente;
current_node->siguiente?=?head;
head?=?current_node;
current_node?=?next_node;
}
}
}
};
int? main()?{
Lista de enlaces?linklist;
for(int?i?=?1;?i?<=?10;?i++)?{
¿Nodo?*nodo?=?nuevo?Nodo(i);
linklist.insert(nodo,?i?-??1);
}
linklist.output();
linklist.delete_node( 3);
linklist.output();
linklist.reverse();
linklist.output();
¿regresar?