Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- /**
- 1. Adott a graf.be szövegállomány, amelynek elsô sorában a gráf cso-
- mópontjainak száma(n) található, a második sorában az élek száma(m), a har-
- madik sortól kezdve pedig m soron keresztül, az éleket leíró csomópontpárok
- szóközzel elválasztva.
- a) Döntsük el a gráfról, hogy Euler gráf-e. Használjuk az erre vonatkozó té-
- telt.
- b) Vizsgáljuk meg, hogy a tanult tétel alapján a gráfról eldönthetjük-e, hogy
- Hamilton gráf.
- c) a csucsok.be állomßny minden sorában egy csomópontokból álló sorozat
- található szóközzel elválasztva. Minden ilyen csúcssorozat esetén mondjuk
- meg, hogy séta-e, út-e, vonal-e? Az utak esetén vizsgáljuk azt is, hogy
- kör-e?*/
- using namespace std;
- void feltolt(int a[][30],int &n,int &m)
- {
- ifstream f("graf.be.txt");
- f>>n>>m;
- int x,y;
- for(int i=1; i<=m; i++)
- {
- f>>x>>y;
- a[x][y]=1;
- a[y][x]=1;
- }
- f.close();
- }
- int fokszam(int a[][30],int n,int k)
- {
- int db=0;
- for(int j=1;j<=n;j++)
- if(a[k][j]==1) db++;
- return db;
- }
- int euler(int a[][30],int n)
- {
- for(int i=1;i<=n;i++)
- if(fokszam(a,n,i)%2==1) return 0;
- return 1;
- }
- int main()
- {
- int a[30][30],n,m;
- feltolt(a,n,m);
- cout<<"euler "<<euler(a,n)<<endl;
- int h=1;
- for(int i=1;i<=n;i++)
- if(fokszam(a,n,i)<n/2) h=0;
- if(h==1) cout<<"hamilton 1";
- else cout<<"hamilton nem tudom eldonteni";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement