Advertisement
icatalin

problema sterge ultimu

May 27th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. creati o lista simplu inlantuita cu cele n valori date din fisier
  2. a) afisati continutul listei dupa ce a sters primul nr prim
  3. b) dupa ultimul nr par din lista inserati jum. lui si afisati lista
  4.  
  5.  
  6.  
  7.  
  8.  
  9. #include <iostream>
  10. #include <cmath>
  11. #include <fstream>
  12.  
  13. using namespace std;
  14.  
  15. ifstream f("date.in");
  16.  
  17. struct nod
  18. {
  19.     int info;
  20.     nod *urm;
  21. };
  22.  
  23. nod *prim;
  24.  
  25. void creare()
  26. {
  27.     int x;
  28.     nod *p,*nou;
  29.     while (f>>x)
  30.     {
  31.         if (prim==NULL)
  32.         {
  33.             prim=new nod;
  34.             prim->info=x;
  35.             p=prim;
  36.         }
  37.         else
  38.         {
  39.             nou=new nod;
  40.             nou->info=x;
  41.             p->urm=nou;
  42.             p=nou;
  43.         }
  44.         p->urm=NULL;
  45.     }
  46.  
  47. }
  48.  
  49. void afisare()
  50. {
  51.     nod *p=prim;
  52.     while (p)
  53.     {
  54.         cout<<p->info<<" ";
  55.         p=p->urm;
  56.     }
  57. }
  58.  
  59. int nrprim(int x)
  60. {
  61.     int i;
  62.  
  63.     for (i=2;i<=sqrt(x);i++)
  64.     if (x%i==0)
  65.             return 0;// nu e prim
  66.  
  67.         return 1;// e prim
  68.  
  69. }
  70.  
  71. void stergere()
  72. {
  73.     nod *p=prim,*r,*q;
  74.  
  75.     while (nrprim(p->urm->info)!=1 && p->urm)
  76.     p=p->urm;
  77.  
  78.     q=p->urm;
  79.     r=q->urm;
  80.     p->urm=r;
  81.     delete q;
  82. }
  83.  
  84. void inserare()
  85. {
  86.     nod *p=prim,*pp,*nou;
  87.     while (p)
  88.     {
  89.         if (p->info%2==0)
  90.             p=p->urm;
  91.     }
  92.    
  93.     nou=new nod;
  94.     nou->info=pp->info/2;
  95.     nou->urm=pp->urm;
  96.     pp->urm=nou;
  97. }
  98.  
  99. int main()
  100. {
  101.  
  102.     creare();
  103.     inserare();
  104.     afisare();
  105.  
  106.  
  107.     return 0;
  108. }
  109.  
  110.  
  111. //varianta 2
  112.  
  113.  
  114. #include <iostream>
  115. #include <cmath>
  116. #include <fstream>
  117.  
  118. using namespace std;
  119.  
  120. ifstream f("date.in");
  121.  
  122. struct nod
  123. {
  124.     int info;
  125.     nod *urm;
  126. };
  127.  
  128. nod *prim;
  129.  
  130. void creare()
  131. {
  132.     int x;
  133.     nod *p,*nou;
  134.     while (f>>x)
  135.     {
  136.         if (prim==NULL)
  137.         {
  138.             prim=new nod;
  139.             prim->info=x;
  140.             p=prim;
  141.         }
  142.         else
  143.         {
  144.             nou=new nod;
  145.             nou->info=x;
  146.             p->urm=nou;
  147.             p=nou;
  148.         }
  149.         p->urm=NULL;
  150.     }
  151.  
  152. }
  153.  
  154. void afisare()
  155. {
  156.     nod *p=prim;
  157.     while (p)
  158.     {
  159.         cout<<p->info<<" ";
  160.         p=p->urm;
  161.     }
  162. }
  163.  
  164. int nrprim(int x)
  165. {
  166.     int i;
  167.  
  168.     for (i=2;i<=sqrt(x);i++)
  169.     if (x%i==0)
  170.             return 0;// nu e prim
  171.  
  172.         return 1;// e prim
  173.  
  174. }
  175.  
  176. void stergere()
  177. {
  178.     nod *p=prim,*r,*q;
  179.  
  180.     while (nrprim(p->urm->info)!=1 && p->urm)
  181.     p=p->urm;
  182.  
  183.     q=p->urm;
  184.     r=q->urm;
  185.     p->urm=r;
  186.     delete q;
  187. }
  188.  
  189. void inserare()
  190. {
  191.     nod *p=prim,*pp,*nou;
  192.     while (p)
  193.     {
  194.         if (p->info%2==0)
  195.             p=p->urm;
  196.     }
  197.  
  198.     nou=new nod;
  199.     nou->info=pp->info/2;
  200.     nou->urm=pp->urm;
  201.     pp->urm=nou;
  202. }
  203.  
  204. int main()
  205. {
  206.  
  207.     creare();
  208.     inserare();
  209.     afisare();
  210.  
  211.  
  212.     return 0;
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement