Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int n;
  6.  
  7. struct nod
  8. {
  9. int info;
  10. nod*leg;
  11. };
  12.  
  13. nod* creare()
  14. {
  15. nod*prim,*ultim,*p;
  16. int nr;
  17. prim=new nod;
  18. ultim=prim;
  19. cout<<"Nr: ";
  20. cin>>nr;
  21. if(nr==0)
  22. {
  23. cout<<"Lista este vida";
  24. return 0;
  25. }
  26. else
  27. {
  28. prim->info=nr;
  29. prim->leg=NULL;
  30. cout<<"Nr: "; cin>>nr;
  31. while(nr)
  32. {
  33. p=new nod;
  34. p->info=nr;
  35. ultim->leg=p;
  36. ultim=p;
  37. ultim->leg=NULL;
  38. cout<<"Nr: "; cin>>nr;
  39. };
  40. return prim;
  41. }
  42. }
  43.  
  44. void parcurgere(nod*prim)
  45. {
  46. nod*p;
  47. p=prim;
  48. while(p)
  49. {
  50. cout<<p->info<<" ";
  51. n++;
  52. p=p->leg;
  53. }
  54. }
  55.  
  56. int inserare(nod* &prim, int k, int inf)
  57. {
  58. nod* q;
  59. if(k>n+1)
  60. return 0;
  61. else
  62. {
  63. nod* p=new nod;
  64. p->info=inf;
  65. if(k==1)
  66. {
  67. p->leg=prim;
  68. prim=p;
  69. }
  70. else
  71. if(k==n+1)
  72. {
  73. q=prim;
  74. while(q->leg)
  75. q=q->leg;
  76. q->leg=p;
  77. p->leg=NULL;
  78. }
  79. else
  80. {
  81. q=prim;
  82. int ct=1;
  83. while(ct<k-1)
  84. {
  85. q=q->leg;
  86. ct++;
  87. }
  88. p->leg=q->leg;
  89. q->leg=p;
  90. }
  91. return 1;
  92. }
  93. }
  94.  
  95. int main()
  96. {
  97. nod* prim;
  98. int k,inf;
  99. prim=creare();
  100. parcurgere(prim);
  101. cout<<"Nr. de noduri este: "<<n;
  102. cout<<endl<<"Pozitia si valoarea pentru inserare: ";
  103. cin>>k>>inf;
  104. if(!inserare(prim,k,inf))
  105. cout<<"Pozitia introdusa nu se afla in lista!";
  106. else
  107. parcurgere(prim);
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement