About this entry




Punteros con C++ (Pointers in C++, Spanish only)

El siguiente articulo presenta una introducción a punteros en C++ e ilustra su uso en la construcción de listas simplemente enlazadas y doblemente enlazadas.

Liked it? !

Antes de leer este artículo se recomienda haber leído Introducción a C++.

Índice

  1. Manejo de Memoria
  2. Listas Simplemente Enlazadas
  3. Listas Doblemente Enlazadas
  4. Vectores Dinámicos

 

  1. Manejo de Memoria

    En C++ puede asignarse memoria utilizando new y liberarse mediante delete.

    1. New: es un operador que devuelve un puntero a la memoria asignada dinámicamente, que debe ser suficientemente grande como para contener al objeto de tipo type.

      Sintaxis

      p-var=new type;

       

    2. Delete: libera la memoria

      Sintaxis

      delete p-var;

       

  2. Listas Simplemente Enlazadas

    Escribir un programa para el mantenimiento de notas usando listas simplemente enlazadas.

    struct nodo { int nota; struct nodo *siguiente; } cabeza; int ingreso (int n) { struct nodo *nuevo; if (!(nuevo=new struct nodo)) return 0; nuevo->nota=n; if (cabeza) nuevo->siguiente=cabeza; else nuevo->siguiente=NULL; cabeza->nuevo; return 1; } void desplegar (); { struct nodo *actual; actual=cabeza; while (actual) { cout << actual->nota << ´\n´; actual=actual->siguiente; } } void desplegar_rec (struct nodo *p) { if (p)cout << p->nota << '\n' desplegar_rec (p->siguiente); } void eliminar (struct nodo *p) { if (p) { eliminar (p->siguiente); delete p; } }

     

  3. Listas Doblemente Enlazadas

    struct nododoble { int nota; struct nodo *siguiente, *anterior; } *cabeza=NULL; int ingreso (int n) { struct nododoble *nuevo; if (!(nuevo=new struct nododoble)) return 0; nuevo->nota=n; if (cabeza) { cabeza->anterior=nuevo; nuevo->siguiente=cabeza; } else nuevo->siguiente=NULL; cabeza->nuevo; nuevo->anterior=NULL; return 1; }

     

  4. Vectores Dinámicos

    Para pedir memoria para mas de un elemento la sintaxis de new y delete cambia.

    Nueva sintaxis:

    p-var=new type[tamaño];
    delete [tamaño]p-var; ó delete []p-var; // para un compilador reciente.

    Ejemplo:

    main() { int *v; int n; cout << "Cuantas posiciones\n" cin << n; v=new int[n]; . . delete [n]v; }

Siguiente articulo que se recomienda leer: Objetos en C++.

Liked it? !

Posted on October 4th | 2 comments | Filed Under: Tutorial de C y C++