Professional Documents
Culture Documents
Portofoliu Programare
Portofoliu Programare
Efectuat:Panis Traian-Stefan
R-1921 Panis Traian-Sefan
#include<iostream>
using namespace std;
struct Nod
{
int valoare;
Nod *next,*back;
};
Nod *prim, *ultim;
int n;
void creare_lista()
{Nod *c;
c=new Nod;
}
else
{ultim->next=c;
c->back=ultim;
ultim=c;
ultim->next=0;
}
}
void listare_stanga_dreapta()
{Nod *c;
c=prim;
while(c)
{cout<<c->valoare<<" ";
c=c->next;}
}
void creaza_lista_circulara()
{ultim->next=prim;
prim->back=ultim;
}
void afiseaza_lista_circulara(Nod *c)
{for(int i=1;i<=n;i++)
{cout<<c->valoare<<" ";
c=c->next;}
}
R-1921 Panis Traian-Sefan
void main()
{int i;
clrscr();
cout<<"cate elemente va avea lista?";
cin>>n;
for(i=1;i<=n;i++)
creare_lista();
cout<<endl<<"Elementele listei de la stanga la dreapta sunt:"<<endl;
listare_stanga_dreapta();
creaza_lista_circulara();
cout<<endl<<"afiseaza lista circulara incepand de la primul :"<<endl;
afiseaza_lista_circulara(prim);
cout<<endl<<"afiseaza lista circulara incepand de la al doilea :"<<endl;
afiseaza_lista_circulara(prim->next);
cout<<endl<<"afiseaza lista circulara incepand de la ultimul :"<<endl;
afiseaza_lista_circulara(ultim);
Nod* stergere(Nod *prim,char *nume){
Nod *q,*p;
if(prim!=NULL){
if(strcmp(prim->nume,nume)==0){
q=prim;
prim=prim->urm;
free(q);
return prim;
}
q=prim;
while(q->urm!=NULL && strcmp(q->urm->nume,nume)!=0)
q=q->urm;
if(q->urm!=NULL && strcmp(q->urm->nume,nume)==0){
p=q->urm;
q->urm=q->urm->urm;
free(p);
}
return prim;
}
else{
printf(“\nLista vida!”);
return prim;
}
}
return();
#include <iostream>
using namespace std;
bool isEmpty(int nrtotal){
if(nrtotal==0){
return true;
}
else{
return false;
}
}
void push(char stiva[],int &nrtotal, int numar){
nrtotal=nrtotal+1;
stiva[nrtotal]=numar;
}
int peek(char stiva[],int nrtotal){
return stiva[nrtotal];
}
int pop(char stiva[],int &nrtotal){
int rezultat=peek(stiva,nrtotal);
nrtotal=nrtotal-1;
return rezultat;
}
void invers(char stiva[],int nrtotal){
for(int i=nrtotal-1;i>=0;i--)
cout<<stiva[i];
}
int main()
{
char nrtotal=0;char nume[25];
cout<<"Introduceti numele: ";cin>>nume;
R-1921 Panis Traian-Sefan
while(nume[nrtotal]!='\0'){
nrtotal++;
}
invers(nume,nrtotal);
}
#include <fstream>
using namespace std;
ifstream fin("suma.in");
ofstream
fout("suma.out");
int n,v[100];
int a=(79,40,23,110,11,73,20,60,3);
int main()
{
int i, s=0;
fin>>n;
for ( i = 0; i < n; i++ )
{
fin>>v[i]; s= s + v[i];
}
{
int i, vmax;
fin>>n;
for ( i = 0; i < n; i++ )
fin>>v[i];
vmax = v[0];
for ( i = 1; i < n; i++ )
if (vmax < v[i] )
vmax = v[i];
fout<<vmax;
}
fout<<s; fin.close();
fout.close();
return 0;}
R-1921 Panis Traian-Sefan
#include<iostream>
using namespace std;
struct Nod
{
int valoare;
Nod *next,*back;
};
Nod *prim, *ultim;
int n;
void creare_lista()
{Nod *c;
c=new Nod;
}
else
{ultim->next=c;
c->back=ultim;
ultim=c;
ultim->next=0;
}
}
void listare_stanga_dreapta()
{Nod *c;
c=prim;
while(c)
{cout<<c->valoare<<" ";
c=c->next;}
}
void creaza_lista_circulara()
{ultim->next=prim;
prim->back=ultim;
}
void afiseaza_lista_circulara(Nod *c)
{for(int i=1;i<=n;i++)
{cout<<c->valoare<<" ";
c=c->next;}
}
R-1921 Panis Traian-Sefan
void main()
{int i;
clrscr();
cout<<"cate elemente va avea lista?";
cin>>n;
for(i=1;i<=n;i++)
creare_lista();
cout<<endl<<"Elementele listei de la stanga la dreapta sunt:"<<endl;
listare_stanga_dreapta();
creaza_lista_circulara();
cout<<endl<<"afiseaza lista circulara incepand de la primul :"<<endl;
afiseaza_lista_circulara(prim);
cout<<endl<<"afiseaza lista circulara incepand de la al doilea :"<<endl;
afiseaza_lista_circulara(prim->next);
cout<<endl<<"afiseaza lista circulara incepand de la ultimul :"<<endl;
afiseaza_lista_circulara(ultim);
Nod* stergere(Nod *prim,char *nume){
Nod *q,*p;
if(prim!=NULL){
if(strcmp(prim->nume,nume)==0){
q=prim;
prim=prim->urm;
free(q);
return prim;
}
q=prim;
while(q->urm!=NULL && strcmp(q->urm->nume,nume)!=0)
q=q->urm;
if(q->urm!=NULL && strcmp(q->urm->nume,nume)==0){
p=q->urm;
q->urm=q->urm->urm;
free(p);
}
return prim;
}
else{
printf(“\nLista vida!”);
return prim;
}
}
return();
Stiva
R-1921 Panis Traian-Sefan
Stiva (sau „stack” in limba engleza) este o structură de date liniara ce lucreaza
cu o colectie de date avand doua operatii principale:
#include <iostream>
if(nrtotal==0){
return true;
else{
return false;
nrtotal=nrtotal+1;
stiva[nrtotal]=numar;
return stiva[nrtotal];
int rezultat=peek(stiva,nrtotal);
nrtotal=nrtotal-1;
return rezultat;
for(int i=nrtotal-1;i>=0;i--)
cout<<stiva[i];
int main()
{
R-1921 Panis Traian-Sefan
char nrtotal=0;char nume[25];
while(nume[nrtotal]!='\0'){
nrtotal++;
invers(nume,nrtotal);
Coada
Coada (sau „queue” in limba engleza) este o structura de date liniara ce
lucreaza cu o colectie de date avand doua operatii principale:
#include <iostream>
using namespace std;
const int LIM = 100;
bool isEmpty(int k) {
if(k == 0)
return true;
return false;
}
void push(int coada[], int &k, int numar) {
k = k + 1;
coada[k] = numar;
}
int front(int coada[]) {
return coada[1];
}
int pop(int coada[], int &k) {
int rezultat = coada[1];
for(int i = 1; i < k - 1; i++)
coada[i] = coada[i + 1];
k = k - 1;
return rezultat;
}
int size(int k) {
return k;
}
int main() {
int coada[LIM], k = 0;
push(coada, k, 2);
push(coada, k, 4);
push(coada, k, 6);
push(coada, k, 7);
R-1921 Panis Traian-Sefan
push(coada, k, 8);
cout << pop(coada, k);
cout << pop(coada, k);
cout << pop(coada, k);
return 0;
}
Arbore binary
Numim arbore un graf conex si fara cicluri. Un arbore este determinat de cateva
proprietati: Un nod special numit radacina in care nu intra nici un arc. Din
fiecare nod pot iesi zero, unul sau mai multe arce, numite fii. Din fiecare nod
(mai putin radacina) poate intra un singur arc, dintr-un nod numit parinte.
Nodurile sunt organizate pe nivele, primul nivel este ocupat numai de radacina,
iar ultimul nivel contine numai noduri din care nu iese nici un arc, numite noduri
terminale, sau frunze. Fiecare nod poate contine o informatie numita
informatie utila sau cheie a arborelui.
#include<iostream>
Int main()
struct NodLista
{
NodLista(TipArbore info, NodLista* leg = NULL)
: Informatii(info), Legatura(leg) {}
};
NodLista* Concatenare(NodLista *cap1, NodLista *cap2)
{
if (cap1 == NULL)
return cap2;
while (cap1->Legatura != NULL)
cap1 = cap1->Legatura;
cap1->Legatura = cap2;
return cap1;
}
// procedura recursiva de parcurgere a unui arbore binar
NodLista* Parcurgere(NodArbore *nod)
{
if (nod == NULL)
return NULL;
NodLista *cap = NULL;
cap = Concatenare(cap, Parcurgere(nod->Stanga));
R-1921 Panis Traian-Sefan
cap = Concatenare(cap, new NodLista(nod->Informatii));
cap = Concatenare(cap, Parcurgere(nod->Dreapta));
return cap;
}
Metoda trierii
#include <iostream>
using namespace std;
int n,m,i,k;
int SumaCifrelor(int num) {
int s=0;
do{
s=s+num$10;
num=num/10;
}
while (num!=0);
return s;
I
bool SolutiePosibila (int num) {
if (SumaCifrelor (num)==m)
return true;
else return false;
}
R-1921 Panis Traian-Sefan
int main () (
cout<< " "; cin >> n;
cout<< "M= "; cin >> m;
Metoda Greedy
#include <iostream>
#include <fstream>
ifstream f("suma.in");
int a[100];
R-1921 Panis Traian-Sefan
int n;
{ f>>n;
for(int i=1;i<=n;i++)
f>>a[i];
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<"}"<<endl;
int main()
{ int i,sumaxim=0;
citire(a,n);
afisare(a,n);
for(i=1;i<=n;i++)
if(a[i]>=0)
{ cout<<a[i]<<" ";
sumaxim=sumaxim+a[i];
cout<<"}"<<endl;
return 0;
R-1921 Panis Traian-Sefan
Metoda backtracking
#include <iostream>
using namespace std;
int x1[100], nl, nrsol1=0;
void Afisare () {
int i;
for (i=1;i<=n1;it+)
cout<<xl[i]<<" ";
cout<<endl;
nrsolltt;
}
int Valid(int k) {
int i;
for (i=1;i<=k-1;itt)
if (x1[k]==x1[i]) return 0;
return 1;
}
void BackRecl(int k){
int i;
for (i=1;i<=nl; itt) {
x1 [k]=i;
if (Valid(k))
if (k==nl) Afisare();
else BackRecl (k+1) ;
)
}
int main (){
cout<<"Introduceti valoarea lui n:
ein>>al;
BackRecl (1) ;
cout<<arsoll<<endl ;
return 0;
}
#include<iostream.h>
int a[10],n;
else
if (i<=m)
for(j=i;j<=m;j++)
else
for(i=j;i<=q;i++)
k=1;
for(i=p;i<=q;i++)
main()
divimp(1,n,a);
for(i=1;i<=n;i++)
cout<<a[i]<<' ';