Advertisement
Dani_info

Tema liste teza

Nov 24th, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. /*struct nod{
  7.     char *nume;
  8.     nod* leg;
  9. };*/
  10.  
  11. struct nod {
  12.     int info;
  13.     nod *anterior;
  14.     nod *urmator;
  15.     char caracter;
  16.     char nume[];
  17. };
  18.  
  19. nod *creare(){
  20.     int n;
  21.     cin>>n;
  22.     if (n==0)
  23.         return 0;
  24.     else{
  25.         nod *p=new nod;
  26.         p->info=n;
  27.         p->anterior=NULL;
  28.         nod *prim=p;
  29.         cin>>n;
  30.         while (n){
  31.             nod *q=new nod;
  32.             q->info=n;
  33.             q->anterior=p;
  34.             p->urmator=q;
  35.             p=q;
  36.             cin>>n;
  37.         }
  38.         p->urmator=NULL;
  39.         return prim;
  40.     }
  41. }
  42.  
  43. void afisare (nod *prim){
  44.     while (prim){
  45.         cout<<prim->info<<" ";
  46.         prim=prim->urmator;
  47.     }
  48. }
  49.  
  50. void inserare(int k, nod*& prim){
  51.     nod *p=new nod;
  52.     nod *q=prim;
  53.     p->info=0;
  54.     if (k==1){
  55.         p->anterior=NULL;
  56.         p->urmator=prim;
  57.         prim=p;
  58.     }
  59.     else{
  60.         int ind=1;
  61.         q=q->urmator;
  62.         while (q){
  63.             ind++;
  64.             if (ind==k){
  65.                 p->urmator=q->urmator;
  66.                 q->urmator=p;
  67.                 p->anterior=q;
  68.  
  69.             }
  70.             q=q->urmator;
  71.         }
  72.     }
  73. }
  74. int main()
  75. {
  76.     int pb;
  77.     cout<<"Introdu numatul problemei:"; cin>>pb;
  78.     switch(pb){
  79.         case 1:{ //pb 5, Var. 31
  80.             break;
  81.         }
  82.         case 2:{//pb. 5 Var 33
  83.             nod *prim=creare();
  84.             nod *p=prim;
  85.             int poz=0;
  86.             while (p){
  87.                 poz++;
  88.                 if (p->info<0){
  89.                     inserare (poz, prim);
  90.                 }
  91.                 p=p->urmator;
  92.             }
  93.             afisare(prim);
  94.             break;
  95.         }
  96.         case 3:{ //pb 5, Var 53
  97.             int n, a, r;
  98.             cout<<"n="; cin>>n;
  99.             cout<<"a="; cin>>a;
  100.             cout<<"r="; cin>>r;
  101.             nod* prim=new nod;
  102.             prim->info=a;
  103.             nod *q=prim;
  104.             a+=r;
  105.             for (int i=1; i<n; i++, a+=r){
  106.                 nod*p=new nod;
  107.                 p->info=a;
  108.                 q->urmator=p;
  109.                 q=p;
  110.             }
  111.             q->urmator=NULL;
  112.             afisare(prim);
  113.             break;
  114.         }
  115.         case 4:{//pb. 5, Var. 91
  116.             char c[20];
  117.             cin>>c;
  118.             nod *prim=new nod;
  119.             prim->caracter=c[strlen(c)];
  120.             prim->anterior=NULL;
  121.             nod *p=prim;
  122.             for (int i=strlen(c)-1; i>=0; i--){
  123.                 nod *q=new nod;
  124.                 q->caracter=c[i];
  125.                 cout<<q->caracter<<" ";
  126.                 q->anterior=p;
  127.                 p->urmator=q;
  128.                 q=p;
  129.             }
  130.             p->urmator=NULL;
  131.             while (prim){
  132.                 cout<<prim->caracter<<" ";
  133.                 prim=prim->urmator;
  134.             }
  135.             break;
  136.         }
  137.     }
  138.     return 0;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement