Advertisement
Five_NT

[C++]Succesori, Predecesori, vf extern, vf intern

Jan 20th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. //  Fie G=(x,y) sa se afiseze pt fiecare varf succesorii sa si numarul de succesori
  2. //respectiv predecesorii si nr de predecesori.
  3. #include <iostream>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. int v[100][100], n, de[100], di[100];
  9.  
  10. void citire()
  11. {
  12.     ifstream f("c.in");
  13.     f>>n;
  14.     for(int i=1; i<=n; i++)
  15.         for(int j=1; j<=n; j++)
  16.             f>>v[i][j];
  17. }
  18.  
  19. int succesor(int x)
  20. {
  21.     cout<<" Succesorii nodului "<<x<<" sunt: ";
  22.     for(int j=1; j<=n; j++)
  23.         if(v[x][j] == 1)
  24.         {
  25.             cout<<j<<" ";
  26.             de[x]++;
  27.         }
  28.     return de[x];
  29. }
  30.  
  31. int grad_intern(int i)
  32. {
  33.     int g_i=0;
  34.     for(int j=1; j<=n; j++)
  35.         if(v[i][j] == 1)
  36.         {
  37.             g_i++;
  38.         }
  39.     return g_i;
  40. }
  41.  
  42. int predecesor(int y)
  43. {
  44.     cout<<" Predecesorii nodului "<<y<<" sunt: ";
  45.     for(int i=1; i<=n; i++)
  46.         if(v[i][y] == 1)
  47.         {
  48.             cout<<i<<" ";
  49.             di[y]++;
  50.         }
  51.     return y;
  52. }
  53.  
  54. int grad_extern(int j)
  55. {
  56.     int g_e=0;
  57.     for(int i=1; i<=n; i++)
  58.         if(v[i][j] == 1)
  59.         {
  60.             g_e++;
  61.         }
  62.     return g_e;
  63. }
  64.  
  65. void problema()
  66. {
  67.     int optiune = 0, vf = 0;
  68.     do
  69.     {
  70.         cout<<endl<<"|------- Optiuni -------|\n|   1. Succesor |\n|    2. Predecesor   |\n|    3. Grad extern  |\n|    4. Grad intern  |\n|    5. Iesire   |\n|-----------------------|"<<endl<<endl;
  71.         cout<<" Nod: "; cin>>vf;
  72.         cout<<" Problema: "; cin>>optiune;
  73.         switch(optiune)
  74.         {
  75.             case 1:
  76.             {
  77.                 cout<<(succesor(vf))<<endl;
  78.                 break;
  79.             }
  80.             case 2:
  81.             {
  82.                 cout<<(predecesor(vf))<<endl;
  83.                 break;
  84.             }
  85.             case 3:
  86.             {
  87.                 cout<<"Nodul "<<vf<<" are "<<grad_extern(vf)<<" grade externe."<<endl;
  88.                 break;
  89.             }
  90.             case 4:
  91.             {
  92.                 cout<<"Nodul "<<vf<<" are "<<grad_intern(vf)<<" grade interne."<<endl;
  93.                 break;
  94.             }
  95.         }
  96.     }while(optiune!=0);
  97. }
  98.  
  99. int main()
  100. {
  101.     citire();
  102.     problema();
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement