Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <string>
  5. using namespace std;
  6. const unsigned NMAX=100;
  7. typedef unsigned adresa;
  8. struct nod {int info; adresa urm;};
  9. nod lista[NMAX+1];
  10. int nr_el,liber[NMAX];
  11.  
  12. int este_plina()
  13. {
  14. return nr_el==NMAX;
  15. }
  16. int este_vida(adresa prim)
  17. {
  18. return prim==NULL;
  19. }
  20. void init()
  21. {
  22. nr_el=0;
  23. for (adresa p=1; p<=NMAX; p++)
  24. liber[p]=1;
  25. }
  26. adresa aloc_mem()
  27. {
  28. adresa p; for (p=1; !liber[p];p++)
  29. liber[p]=0; nr_el++;
  30. return p;
  31. }
  32. void adaug_prim(adresa &prim, int n)
  33. {
  34. prim=aloc_mem();
  35. lista[prim].info=n; lista[prim].urm=NULL;
  36. }
  37. void adauga_ultim(adresa q, int n)
  38. {
  39. adresa p=aloc_mem();
  40. lista[p].info=n; lista[q].urm=p; lista[p].urm=NULL;
  41. }
  42. adresa cauta(adresa prim, int n)
  43. {
  44. adresa p=prim;
  45. while(lista[p].info<n && lista[p].urm!=NULL) p=lista[p].urm;
  46. return p;
  47. }
  48. void adauga_in_fata(adresa q, int n)
  49. {
  50. adresa p=aloc_mem();
  51. lista[p].urm=lista[q].urm; lista[q].urm=p;
  52. lista[p].info=lista[q].info; lista[q].info=n;
  53. }
  54. void creare(adresa &prim)
  55. {
  56. adresa q; int n; init(); cout<<"Numar "; cin>>n;
  57. adaug_prim(prim,n);
  58. cout<<"Numar "; cin>>n;
  59. while (n!=0&& !este_plina())
  60. {
  61. q=cauta(prim,n);
  62. if (lista[q].info<n)
  63. adauga_ultim(q,n);
  64. else adauga_in_fata(q,n);
  65. cout<<"Numar "; cin>>n;
  66. }
  67. }
  68. void afiseaza (adresa prim)
  69. {
  70. for (adresa p=prim; p!=NULL; p=lista[p].urm)
  71. cout<<lista[p].info<<" ";
  72. }
  73. int main()
  74. {
  75. adresa prim; creare(prim);
  76. afiseaza(prim);
  77. getch();
  78. if (!este_vida) afiseaza(prim);
  79. else cout<<"Nu exista elemente";
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement