Advertisement
Guest User

TestSDA

a guest
Apr 27th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6.  
  7. typedef struct nod
  8. {
  9. char *numele_varfului;
  10. char inaltimi_varfuri[20];
  11. struct nod *urm;
  12. } nod;
  13.  
  14. nod *root1,*root2,*root3;
  15.  
  16.  
  17. nod *inserare_inceput(nod *lista, char numele_varfului[], char inaltimi_varfuri[])
  18. {
  19.     nod *aux;
  20.     aux=(nod *)malloc(sizeof(nod));
  21.     aux->numele_varfului = (char *)malloc(strlen(numele_varfului)+1);
  22.     strcpy(aux->numele_varfului,numele_varfului);
  23.     strcpy(aux->inaltimi_varfuri, inaltimi_varfuri);
  24.     aux->urm=lista;
  25.     lista=aux;
  26.  
  27.     return aux;
  28. }
  29.  
  30.  
  31.  
  32. nod *inserare_sfarsit(nod *lista, char numele_varfului[], char inaltimi_varfuri[])
  33. {
  34.     nod *q;
  35.     nod *aux;
  36.  
  37.     aux=(nod *)malloc(sizeof(nod));
  38.     aux->numele_varfului = (char *)malloc(strlen(numele_varfului)+1);
  39.     strcpy(aux->numele_varfului,numele_varfului);
  40.     strcpy(aux->inaltimi_varfuri,inaltimi_varfuri);
  41.  
  42.     if (lista=NULL)
  43.     {
  44.         aux->urm=lista;
  45.         lista=aux;
  46.         aux->urm=NULL;
  47.     }
  48.     else
  49.     {
  50.         for(q=lista; q->urm != NULL; q=q->urm);
  51.         q->urm=aux;
  52.         aux->urm=NULL;     
  53.     }
  54.         return lista;
  55. }
  56.  
  57.  
  58.  
  59. nod *tehnica_2_pointeri(nod *lista, char numele_varfului[], char inaltimi_varfuri[])
  60. {
  61.     nod *q1; nod *q2;nod *aux;
  62.  
  63.     aux=(nod *)malloc(sizeof(nod));
  64.     aux->numele_varfului=(char*)malloc(strlen(numele_varfului)+1);
  65.     strcpy(aux->numele_varfului,numele_varfului);
  66.     strcpy(aux->inaltimi_varfuri,inaltimi_varfuri);
  67.  
  68.     for(q1=q2=lista; (q1!=NULL) && (strcmp(q1->numele_varfului,numele_varfului)<0); q2=q1,q1 = q1->urm);
  69.         if(q2!=q1)
  70.         {
  71.             q2->urm=aux;
  72.             aux->urm=q1;
  73.         }
  74.         else
  75.         {
  76.             aux->urm=q1;
  77.             lista=aux;
  78.         }
  79.         return lista;
  80. }
  81.  
  82.  
  83.  
  84. nod *stergere(nod *lista, char *numele_varfului)
  85. {
  86.     nod*q1,*q2;
  87.     for(q1=q2=lista;q1!=NULL &&strcmp(q1->numele_varfului,numele_varfului)!=0; q2=q1,q1=q1->urm);
  88.         if((q1!=NULL) && (strcmp(q1->numele_varfului,numele_varfului)==0))
  89.             if(q1==q2)
  90.                 {
  91.                     lista=lista->urm;
  92.                     free(q1->numele_varfului);
  93.                     free(q1);
  94.                 }
  95.             else
  96.                 {
  97.                     q2->urm=q1->urm;
  98.                     free(q1->numele_varfului);
  99.                     free(q1);
  100.                 }
  101.             return lista;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement