Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct node {
- int entry = 0; // valores por defecto
- node *next = nullptr;
- };
- struct lista {
- node* root = nullptr;
- };
- void mostrar_lista (lista& l) // funciona
- {
- for (node *p = l.root; p != 0; p = p->next)
- cout << p->entry << ' ';
- cout << endl << endl;
- }
- node* create_node (int a)
- {
- node* nuevo = new node;
- nuevo->entry = a;
- return nuevo;
- }
- void insertar_nodo_en_orden (lista& l, int a)
- {
- node* nuevo = create_node(a);
- node* p = l.root;
- if(l.root == 0)
- {
- l.root = nuevo;
- return;
- }
- if (a <= p->entry)
- {
- nuevo->next = p;
- l.root = nuevo;
- return;
- }
- node* previous = 0;
- while (p != 0 and a > p->entry) //se termina cuando se acaba la lista o encontro un valor menor a a
- {
- previous = p;
- p = p->next;
- }
- nuevo->next = p;
- previous->next = nuevo;
- }
- void insertar_nodo_al_final (lista &l, int a) // funciona
- {
- node* nuevo = new node;
- nuevo->entry = a;
- if (l.root != 0) // apunta a algo?
- {
- node* p = l.root;
- while (p->next != 0)
- p = p->next;
- p->next = nuevo;
- }
- else
- l.root = nuevo;
- }
- void insertion_sort (lista& a, lista& b)
- {
- node* p = a.root;
- node* q = b.root;
- while (p != 0)
- {
- insertar_nodo_en_orden(b, p->entry);
- p = p->next;
- }
- }
- int main()
- {
- lista L, M;
- for (int i=6; i>0; i--) // setea L = 5 4 3 2 1
- insertar_nodo_al_final (L, (i+2)%5);
- mostrar_lista(L); // muestra L
- insertion_sort(L,M); // crea M ordenado
- mostrar_lista(M); // muestra M
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement