Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

Frecventa aparitie numar in vector

#include<iostream>
using namespace std;
struct TNod{
int nr;
int frecventa;
TNod *st, *dr;
};
void Inserare(TNod *&rad, int nr)
{
if(rad){
if(rad->nr==nr) rad->frecventa++;
else if(rad->nr>nr) Inserare(rad->st,nr);
else Inserare(rad->dr, nr);
}
else{
rad=new TNod;
rad->nr=nr;
rad->frecventa=1;
rad->st=rad->dr=NULL;
}
}
int Cautare(TNod* rad, int nr)
{
if(rad){
if(rad->nr==nr) return rad->frecventa;
else if(rad->nr>0) Inserare (rad->st,nr);
else Inserare(rad->dr,nr);
}
else cout<<"Numar inexistent!";
}
void ParcurgereSRD(TNod* rad)
{
if(rad){ParcurgereSRD(rad->st);
cout<<"("<<rad->nr<<","<<rad->frecventa<<")"<<endl;
ParcurgereSRD(rad->dr);}
}
TNod*rad=NULL;
int main(){
int v[50];
int i, n;
cout<<"Dimensiunea vectorului:"; cin>>n;
for(i=0;i<n;i++){
cout<<v"["<<i<<"]="; cin>>v[i];}
for(i=0;i<n;i++) Inserare(rad,v[i]);
ParcurgereSRD(rad);
}
**************************

Permutari
#include<iostream>
#include<conio.h>
using namespace std;
void BubbleSort(int *v, int n){
int b=1;
for(int k=0; (k<n-1)&&b; k++)
{
b=0;
for(int i=0; i<n-k-1; i++)
if(v[i]>v[i+1])
{
int aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
b=1;
}
}
}
int main()
{
int v[50];
int i,n;
cout<<"Nr de elemente: "; cin>>n;
for(i=0;i<n;i++)
{
cout<<"v["<<i<<"]="; cin>>v[i];
}
BubbleSort(v,n);
for(i=0;i<n;i++)
{
cout<<v[i]<<" ";
}
getch();
}
#include<iostream>
#include<conio.h>
using namespace std;
struct TNod{
int cheie;
TNod* urm;
};

********
********
********
**
Sortare
topologi
ca

//TNod **succ;
TNod* succ[20];
//int* pred;
int pred[20];
void inserare(TNod* &cap,int nr){
TNod* nou=new TNod;
nou->cheie=nr;
nou->urm=cap;
cap=nou;
}
void prelucreaza(int i){
TNod* _cap=succ[i];
pred[i]=-1;
while(_cap){
pred[_cap->cheie]--;
_cap=_cap->urm;
}
}
int main()
{
int N,n;
int p,s;
int i;
cout<<"nr elemente = ";cin>>N;
cout<<"nr perechi = ";cin>>n;
for(i=0;i<N;i++)
{
pred[i]=0;succ[i]=NULL;
}
for(i=1;i<n+1;i++){
cout<<"introdu perechi p<s : ";cin>>p;cout<<"<";cin>>s;cout<<endl;
pred[s]++;
inserare(succ[p],s);
}
cout<<endl<<"ordonare topologica ";
int servite=0;bool no_sol;
do{
no_sol=true;
for(i=1;i<N+1;i++){
if(pred[i]==0){
servite++;no_sol=false;
cout<<i<<" ";
prelucreaza(i);
//cin.get();
if(no_sol){cout<<"no solution";break;}
}

}
}while(servite<N);
getch();
cin.get();return 0;
}
**********************
Sortare prin distribuire
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
struct TNod{
int cheie;
TNod *urm;
};
void Push(TNod*&cap, TNod*&sfarsit, int nr){
TNod*nou=new TNod;
nou->cheie=nr;
nou->urm=0;
if(!cap)
cap=sfarsit=nou;
else {
sfarsit ->urm=nou;
sfarsit=nou;
}
}
TNod*cap[10], *sfarsit[10];
void DistrSort(int*A, int n){
for(int k=0;k<3;k++)
{
int i;
for(i=0;i<10;i++)
cap[i]=NULL;
for(i=0;i<n;i++){
int l=(A[i]/(int)pow(10.,k))%10;
Push(cap[l],sfarsit[l],A[i]);
}
int p=0;
for(i=0;i<10;i++)
while(cap[i]){
A[p++]=cap[i]->cheie;
cap[i]=cap[i]->urm;
}
cout<<endl<<"Ordonare alfanumerica dupa ultimele "<<k<<"cifre: ";
for(i=0;i<n;i++)
cout<<A[i]<<" ";
}

}
in
t
m
ai
n(
){

int A[]={172,537,610,723,788,386,281,614,814,623,908,265,876,764},
n=sizeof(A)/sizeof(*A);
DistrSort(A,n);
cin.get();
return 0;
}
*************

Pb steaguri
#include<iostream>
#include<conio.h>
#define N 3
#define C 6
using namespace std;
int x[N];
char culori[6][10]={"alb", "galben", "roz", "rosu", "verde", "albastru"};
int continuare(int k)
{
if(k==0)
return 1;
if(k==1 && x[k]>1)
return 0;
if(x[k]==x[k-1])
return 0;
return 1;
}
void backtracking(int k)
{
if(k==N)
{
cout<<endl;
cout<<"Solutia ";
for(int i=0;i<N;i++)
cout<<culori[x[i]]<<',';
}
if(continuare(k))
else
backtracking(k+1);
for(int
}
i=0;i<C;i++){
}
x[k]=i;
int main()
{
backtracking(0);

getch();
}
************
Pb reginelor
#include<iostream>
#include<conio.h>
#define N 8
using namespace std;
int x[N];
int continuare(int k)
{
for (int i=0; i<k; i++)
if((x[k]==x[i])||(k-i==abs(x[k]-x[i])))
return 0;
return 1;
}
void backtracking(int k)
{
if(k==N)
{
cout<<endl;
for(int i=0;i<N;i++){
cout<<endl;
for(int j=0;j<N;j++)
cout<<(x[i]==j?'x':'-'); }
}
else
for(int i=0;i<N;i++){
x[k]=i;
if(continuare(k))
backtracking(k+1);
}
}
int main()
{
backtracking(0);
******************** pb hartilor
#include<iostream>
#include<conio.h>
#define R 3
using namespace std;
int x[10];
int N;

getch();
}

char culori[10][10]={"galben", "roz", "rosu"};


int v[10][10];
int continuare(int k)
{
for(int i=0; i<k;i++)
if((x[k]==x[i])&&(v[i][k]==1))
return 0;
return 1;
}
void backtracking(int k)
{
if(k==N)
{
cout<<endl;
cout<<"Solutia ";
for(int i=0;i<N;i++)
cout<<culori[x[i]]<<',';
}
else
for(int i=0;i<R;i++){
x[k]=i;
}
if(continuare(k))
}
backtracking(k+1);
int main()
{
cout<<"N= "; cin>>N;
for(int i=0;i<N;i++)
for(int j=i+1;j<N;j++)
{cout<<"Tara "<<i<<" este vecina cu "<<j<<": ";
//cout<<v[i][j];
cin>>v[i][j];
v[j][i]=v[i][j];
}
backtracking(0);
getch();
}
************
Turnurile din hanoy
#include<iostream>
#include<conio.h>
using namespace std;

int a=0;
void Hanoy(int n, char A, char B, char C){
if(n){
Hanoy(n-1,A,C,B);
//cout<<endl<<a++;
cout<<endl<<"Mutarea: "<<a++<<endl;
cout<<A<<" -> "<<C<<endl;
cout<<endl<<endl<<"Nr de mutari= "<<a;
Hanoy(n-1,B,A,C);
}}
int main(){
int n;
cout<<"n=";
cin>>n;
Hanoy(n,'A','B','C');
getch();
}
*************
Pb taieturilor
#include<iostream>
#include<conio.h>
using namespace std;
int l,h,i,n,xf,yf,lf,hf,xv[10],yv[10];
void dimp(int x,int y,int l, int h, int&xf,int &yf, int&lf,int&hf, int xv[10], int yv[10])
{
int gasit=0,i=1;
while(i<=n&&!gasit)
if(xv[i]>x&&xv[i]<1&&yv[i]>y&&yv[i]<y+h)
gasit=1;
else i++;
if(gasit)
{
dimp(x,y,xv[i]-x,h,xf,yf,lf,hf,xv,yv);
dimp(xv[i],y,l+x-xv[i],h,xf,yf,lf,hf,xv,yv);
dimp(x,y,l,yv[i]-y,xf,yf,lf,hf,xv,yv);
dimp(x,yv[i],l,h+y-yv[i],xf,yf,lf,hf,xv,yv);
}
else if(l*h>lf*hf)
{
xf=x;
yf=y;
lf=l;
hf=h;
}
}
int main()
{
cout<<"n="; cin>>n;
for(int i=1;i<=n;i++)
{

cout<<"x["<<i<<"]=";
cin>>xv[i];
}
cout<<"y["<<i<<"]=";
cout<<"l="; cin>>l;
cin>>yv[i];
cout<<"h="; cin>>h;
dimp(0,0,l,h,xf,yf,lf,hf,xv,yv);
cout<<"x="<<xf<<" y= "<<yf<<" l= "<<lf<<" h= "<<hf;
getch();
}
***********************
Pb procesoarelor
#include<iostream>
#include<conio.h>
using namespace std;
int a=1;
int main(){
//int i;
int n; // nr de procesoare
int m; // aplicatii
int L[10]; //timpi lucrare
int T[10]; // timpi ocupare
int P[10]; //programarea lucrarilor
cout<<"numarul de procesoare= "; cin>>n;
cout<<"numarul de aplicatii = ";cin>>m;
for(int i=0;i<m;i++){
cout<<"L["<<i<<"]="; cin>>L[i];
}
for(int i=0;i<n;i++)
T[i]=0;
for(int i=0;i<m;i++)
{//caut procesorul cel mai putin ocupat (min)
int min=0;
for(int j=1;j<n;j++)
if(T[j]<T[min])
min=j;
//aloc lucrarea i pe procesorul min
P[i]=min;
T[min]+=L[i];
}
//afisare T
for(int i=0;i<n;i++)
{cout<<"Procesorul: "<<a++<<" are "<<T[i]<<" timpi "<<endl;
for(int j=0;j<m;j++)
if(P[j]==i)
cout<<" "<<L[j]<<endl;}
getch();

}
**************
Distanta intre 2 orase
#include<iostream>
#include<conio.h>
#include<fstream>
using namespace std;
int main(){
int n,i,j;
int a[10][10];
int start=0;
int stop=2;
int min;
ifstream in ("fis.txt");
cout<<"numarul de orase= "; in>>n;
for(i=0;i<n;i++){
a[i][i]=9999999;
for(j=i+1;j<n;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
in>>a[i][j];
a[j][i]=a[i][j];
}
}
while (start!=stop){ //nu sunt in orasul tinta
min=start;
for(j=0;j<n;j++) //caut cel mai apropiat oras care devine start
if(a[start][j]<a[start][min])
min=j;
cout<<min<<" "<<a[start][min];
a[start][min]=a[min][start]=99999;
start=min;
#include<iostream>
#include<conio.h>
#include<fstream>
using namespace std;
struct Obiect{

}
in.close();
getch();
}

**********
*
Pb
rucsacului

int g;
int v;
double r;
} ob[20];
void BubbleSort(Obiect v[], int n){
double b=1;
for(int k=0; (k<n-1)&&b; k++)
{
for(int i=0; i<n-k-1; i++)
b=0;
if(v[i].r>v[i+1].r)
{
double aux=v[i].r;
v[i].r=v[i+1].r;
v[i+1].r=aux;
b=1;
}
}
}
int main()
for(i=0;i<n;i++)
{
in>>ob[i].g>>ob[i].v;
ob[i].r=(double)ob[i].g/ob[i].v;
//cout<<ob[i].g<<ob[i].v<<ob[i].r<<endl;
}
BubbleSort(ob, n);

{
int i;
int n;
ifstream in
("fis.txt");
in>>n;

for(i=0;i<n;i++)
{
cout<<i+1<<". "<<ob[i].r<<" "<<endl;
}
getch();
}
************

Programarea spectacolelor

#include<iostream>
#include <conio.h>
#include<fstream>
using namespace std;
class CSpectacol{
public:
int s,f;
friend ifstream & operator >>(ifstream &in, CSpectacol &sp)
{
in>>sp.s>>sp.f;
return in;
}
friend ostream & operator <<(ostream &of, CSpectacol &sf)
{
of<<"Spectacolul incepe la: "<<sf.s<<" si se termina la "<<sf.f<<endl;
return of;
}
}
spectacole[30];
int n;
void main(){
int i;
int p=0;//primu spectacol care se desfasoara, el e tot timpu in derulare
cout<<spectacole[p];
ifstream in("date.txt");
in>>n;
for(i=0; i<n;i++)
in>>spectacole[i];
//in>>spectacole[i].s>>spectacole[i].f;
for(i=1;i<n;i++)
if(spectacole[p].f<=spectacole[i].s){
p=i;
cout<<spectacole[p];
}
getch();
}

date.txt

5
12 13
12 16
15 18
10 18
18 20

You might also like