ayuda urgente con vectores

Temas de Algoritmos, Estructuras de Datos, en general

ayuda urgente con vectores

Notapor candelo306 » Sab Oct 27, 2007 12:55 pm

hola soy estudiante del 2 semestre de tecnologi de sistemas y necesito ayuda con estas estructuras de vectores.ojala me puedan colaborar:
hacer un algoritmo que me permita insertar un elemento nuevo:
al principio del vector
al final del vector
en cualquier lugar del vector

hacer un algoritmo que me permita borrar un elemento
al principio del vector
al final del vector
en cualquier lugar del vector

esto es en pseudocodigo. esto es urgente,gracias
candelo306
Novato
Novato
 
Mensajes: 1
Registrado: Sab Oct 27, 2007 12:46 pm


Re: ayuda urgente con vectores

Notapor yalmar » Lun Oct 29, 2007 8:02 pm

eso me parece una lista doblemente enlazada,
en la red hay diversos

double linked list

salu2.
Avatar de Usuario
yalmar
Colaborador
Colaborador
 
Mensajes: 264
Registrado: Mié Jun 09, 2004 4:14 pm
Ubicación: Brasil


ayuda urgente con vectores

Notapor theyasav » Mié Abr 28, 2010 1:41 am

SI LO K NECESITAS SON LISTAS AKI HAY UN EJEMPLO IMPLEMENTADO MEN DEV C++ CON TODO LO K PIDES
[url]
Código: Seleccionar todo
  1. http://www.infount.tk/

[/url]

Código: Seleccionar todo
  1. #include<iostream>

  2. using namespace std;

  3.  

  4. typedef struct Nodo

  5. {

  6.  int dato;

  7.  struct Nodo *sgt;

  8. }TNodo;

  9.  

  10. typedef struct LE

  11. {

  12.  TNodo *inicio;

  13. }TLE;

  14.  

  15. TNodo *crearNodo(int x)

  16. {

  17.  TNodo *nodo=(TNodo*)malloc(sizeof(TNodo));

  18.  nodo->dato=x;

  19.  nodo->sgt=NULL;

  20.  

  21. return nodo;

  22. }

  23.  

  24. TLE *crearLista()

  25. {

  26.  TLE *lista=(TLE*)malloc(sizeof(TLE));

  27.  lista->inicio=NULL;

  28.  

  29.  return lista;

  30. }

  31.  

  32. void insertar(TLE *lista, int x)

  33. {

  34.  TNodo *nodo=crearNodo(x);

  35.  TNodo *p=NULL;

  36.  

  37.  if(lista->inicio==NULL)

  38.     lista->inicio=nodo;

  39.  

  40.  else

  41.     {

  42.     p=lista->inicio;

  43.     while(p->sgt!=NULL)

  44.          p=p->sgt;

  45.    

  46.     p->sgt=nodo;

  47.     }

  48. }

  49.  

  50. void insertarOrden(TLE *lista, int x)

  51. {

  52.  TNodo *nodo=crearNodo(x);

  53.  TNodo *p=NULL;

  54.  int band=1;

  55.  

  56.  if(lista->inicio==NULL)

  57.     lista->inicio=nodo;

  58.  

  59.  else

  60.     {

  61.      p=lista->inicio;

  62.      while(band==1 && p->sgt!= NULL)

  63.           {

  64.            p=p->sgt;

  65.                    

  66.            if(p->dato < x && x < p->sgt->dato)

  67.               {

  68.                nodo->sgt=p->sgt;

  69.                p->sgt=nodo;

  70.                band=0;

  71.               }

  72.  

  73.           }

  74.     }

  75. }

  76.  

  77. void insertarinicio(TLE *lista, int x)

  78. {

  79.  TNodo *nodo=crearNodo(x);

  80.  TNodo *p=NULL;

  81.  

  82.  if(lista->inicio==NULL)

  83.     lista->inicio=nodo;

  84.  

  85.  else

  86.      {

  87.       nodo->sgt=lista->inicio;

  88.       lista->inicio=nodo;

  89.      }

  90. }

  91.  

  92.  

  93. void insertarpos(TLE *lista, int x,int pos)

  94. {

  95.  

  96.  TNodo *nodo=crearNodo(x);

  97.  TNodo *p=NULL;

  98.  

  99.  if(lista->inicio==NULL)

  100.     lista->inicio=nodo;

  101.  

  102.  else

  103.     {

  104.      p=lista->inicio;

  105.      while(p->dato!=pos && p->sgt!= NULL)

  106.           {

  107.            p=p->sgt;

  108.                    

  109.            if(p->dato==pos)

  110.               {

  111.                nodo->sgt=p->sgt;

  112.                p->sgt=nodo;

  113.                }

  114.  

  115.           }

  116.     }

  117. }

  118.  

  119.  

  120. void eliminar(TLE *lista, int dato)

  121. {

  122.  TNodo *p=lista->inicio;

  123.  TNodo *ant=NULL;

  124.  int encontrado=0;

  125.  

  126.  while((p!=NULL)&&(!encontrado))

  127.       {

  128.       if(p->dato==dato)

  129.         encontrado=1;

  130.      

  131.       else

  132.         {

  133.          ant=p;

  134.          p=p->sgt;

  135.         }

  136.       }

  137.      

  138. if(p!=NULL)

  139.   {

  140.    if (ant==NULL)

  141.       {

  142.       lista->inicio=(lista->inicio)->sgt;

  143.       }

  144.    else

  145.       {

  146.       ant->sgt=p->sgt;

  147.       }

  148.    free(p);

  149.   }

  150.  

  151. }

  152.  

  153.  

  154. void eliminarTodo(TLE *lista)

  155. {

  156.  TNodo *p=NULL;

  157.  while(lista->inicio!=NULL)

  158.     {

  159.      p=lista->inicio;

  160.      lista->inicio=p->sgt;

  161.      free(p);

  162.     }

  163.  

  164. }

  165.  

  166.  

  167. void Buscar(TLE *lista, int dato)

  168. {

  169.  TNodo *p=lista->inicio;

  170.  int i=0;

  171.  int encontrado=0;

  172.  

  173.  while((p!=NULL)&&(!encontrado))

  174.       {

  175.        if(p->dato==dato)

  176.           encontrado=1;

  177.      

  178.        else

  179.          p=p->sgt;

  180.        i++;

  181.       }

  182.      

  183. if(encontrado==1)

  184.    cout<<endl<<"       - El Elemento ["<<dato<<"] Esta en La Lista -> "<<i;

  185.  

  186. else

  187.    cout<<endl<<"       - El Elemento ["<<dato<<"] No esta en la Lista";  

  188.  

  189. }

  190.  

  191. void Mostrar(TLE *lista)

  192. {

  193.  TNodo *p=lista->inicio;;

  194.  int i=1;

  195.  

  196.  while(p!=NULL)

  197.       {

  198.        cout<<endl<<"      - Elemento ["<<i<<"] = "<<p->dato;

  199.        i++;

  200.        p=p->sgt;

  201.       }

  202. }

  203.  

  204. int main()

  205. {

  206.  TLE *L=crearLista();

  207.  int N,E,B,i=0;

  208.  int opcion;

  209.  cout<<endl<<endl<<"      \t\t\tMENU";

  210.  cout<<endl<<"  \t\t[1] INSERTAR AL ULTIMO";

  211.  cout<<endl<<"  \t\t[2] INSERTAR AL INICIO";

  212.  cout<<endl<<"  \t\t[3] INSERTAR DESPUES DE";

  213.  cout<<endl;

  214.  cout<<endl<<"  \t\t[4] ELIMINAR UN ELEMENTO";

  215.  cout<<endl<<"  \t\t[5] ELIMINAR LISTA";

  216.  cout<<endl;

  217.  cout<<endl<<"  \t\t[6] MOSTRAR ELEMENTOS";

  218.  cout<<endl<<"  \t\t[7] BUSCAR";

  219.  cout<<endl<<"  \t\t[8] SALIR"<<endl;

  220.  

  221. while(1)

  222. {

  223.  cout<<endl<<"  >> Ingrese Opcion: ";

  224.  cin>>opcion;

  225.  

  226.  

  227.  switch(opcion)

  228.        {

  229.         case 1:

  230.                 i++;

  231.                 cout<<"    - Ingrese ["<<i<<"] elemento: ";

  232.                 cin>>N;

  233.                 insertarOrden(L,N);

  234.                 break;

  235.                

  236.         case 2:

  237.                 i++;

  238.                 cout<<"    - Ingrese ["<<i<<"] elemento: ";

  239.                 cin>>N;

  240.                 insertarinicio(L,N);

  241.                 break;

  242.                

  243.          case 3:

  244.                 i++;

  245.                 int pos;

  246.                 cout<<"    - Ingrese ["<<i<<"] elemento: ";

  247.                 cin>>N;

  248.                

  249.                 cout<<"    - Ingrese Posicion: ";

  250.                 cin>>pos;

  251.                

  252.                 insertarpos(L,N,pos);

  253.                 break;              

  254.                

  255.                  

  256.         case 4:      

  257.                 cout<<endl<<endl<<"   -> INGRESE ELEMENTO A ELIMINAR: ";

  258.                 cin>>E;

  259.                 eliminar(L,E);

  260.                 break;

  261.                

  262.         case 5:

  263.                eliminarTodo(L);

  264.                cout<<endl<<endl<<"   -> LA LISTA ESTA VACIA: ";

  265.                break;              

  266.                

  267.         case 6:

  268.                 cout<<endl<<"     -> LOS ELEMENTOS DE LA LISTA SON:"<<endl;

  269.                 Mostrar(L);

  270.                 break;

  271.  

  272.                                

  273.         case 7:

  274.                cout<<endl<<endl<<"   -> INGRESE ELEMENTO A BUSCAR:";

  275.                cin>>B;

  276.                Buscar(L,B);

  277.                break;

  278.                

  279.  

  280.                

  281.         case 8:

  282.                exit(1);

  283.         default:

  284.                 cout<<endl<<endl<<"     La Opcion No es Valida !!!!!!!!!:";

  285.        }

  286.        

  287. }                    

  288.  

  289.  cout<<endl<<endl;

  290.  system("PAUSE");

  291.  return EXIT_SUCCESS;

  292. }

theyasav
Novato
Novato
 
Mensajes: 3
Registrado: Mié Abr 28, 2010 1:08 am


    

Volver a Algoritmos y Estructuras de Datos

¿Quién está conectado?

Usuarios navegando por este Foro: Google Adsense [Bot] y 1 invitado