lista enlazada opiniones [CODIGO FUENTE]

Iniciado por bash, 14 Febrero 2017, 23:07 PM

0 Miembros y 1 Visitante están viendo este tema.

bash

un saludo a todos , ahora mismo me encuentro estudiando estructura de datos y estoy tratando de aprender a  crear lista enlazada !!

Código (cpp) [Seleccionar]



class Link{
struct node{
node *next;
int vl;
};

node *head;
node *curr;
node *temp;

public:


Link(){
head = curr = temp = NULL;
}

void Add(int d){

node *n = new node;
n-> next = NULL;
n->vl = d;


   if( head == NULL)
   {
   head = n;
   }
   else
   {
      curr = head ;
      while(curr->next){
      curr = curr->next;
      }
      curr->next = n;
      curr = n;
   }

}

void Delete(int vl){
temp = head;
curr = head;
node *temp_;
if(head != NULL){

if( head->vl == vl )
{
   if(head->next != NULL)
   {
   temp  = head->next;

   temp_ = head;

   head = temp;

   delete temp_;
   temp_ = NULL;
   return;
   }

}
}

        while(curr != NULL && curr->vl != vl){
        temp = curr;
        curr = curr->next;
        }
if(curr == NULL)
return;
else{
temp_ = curr;
curr = curr->next;
temp->next = curr;
    delete temp_;
    temp_ = NULL;
}


}

  void Print(){
  node *temp = head;
  if(temp != NULL){
  while(temp != NULL)
  {
  cout << temp->vl <<endl;
  temp = temp->next;
  }
  }
  }

};




int main(){

Link li;
li.Add(0);
    li.Add(1);
    li.Add(2);
    li.Add(3);
    li.Add(4);
    li.Add(5);
    li.Add(6);
    li.Add(7);
    li.Add(8);
    li.Add(9);
    li.Delete(5);
    li.Delete(0);
    li.Delete(8);
    li.Print();

}








me gustaria opiniones.  gracias de antemano...
gracias por responder mis dudas