Advertisement
icatalin

creare/afisare/inserare lista simplu

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