Gandirea algoritmica
Structura unui program si a unei functii in C
Constructiile de bază ale limbajului C – Notiuni generale
Constructiile de baza ale limbajului C – Tipuri de date
Constructiile de baza ale limbajului C – Operatori
Structuri de date – Lista liniara simplu inlantuita
Structuri de date – Stiva (LIFO – Last In First Out)
Structuri de date – Coada (FIFO – First In First Out)
Instructiuni ale limbajului C
Pointeri – Operatori specifici, tablouri, functii
Pointeri – Tipuri structurate de date
Functii de biblioteca
Operatii cu fisiere
Calcul Matriceal – Produsul a doua matrici
Calcul Matriceal – Inversarea unei matrici
Calcul Matricial – Metoda lui Gauss
Metode de sortare – sortare ordinara
Metode de sortare – prin selectie (Selection sort)
Metode de sortare – insertie directa (Direct Insertion Sort)
Metode de sortare – insertie binara (Binary Insertion Sort)
Metode de sortare – insertie directa folosind o santinela
Metode de sortare – metoda bulelor (Bubble Sort)
Metode de sortare – sortare rapida (Quick Sort)
Metode de sortare – prin interclasare (Merge Sort)
Recursivitate (numar factorial, algoritmul lui Euclid recursiv, sirul lui Fibonacci)
Backtracking – permutarile
Backtracking – aranjamente
Backtracking – combinari
Backtracking – problema reginelor
Backtracking – problema labirintului
Backtracking – problema calului
Backtracking – problema mingii
Metoda Divide et Impera – Suma elementelor unui sir
Metoda Divide et Impera – Problema Turnurilor din Hanoi
Metoda Divide et Impera – Elementul maxim intr-un sir
Metoda Divide et Impera – Problema cautarii binare
Grafuri neorientate – parcurgerea in latime
Grafuri neorientate – parcurgerea in adancime
Grafuri neorientate – Drumuri intr-un graf
Grafuri neorientate – ponderate
Grafuri neorientate – hamiltonian
Grafuri neorientate – euleriene
Grafuri neorientate – implementarea unui graf utilizand matricea de adiacenta
Grafuri neorientate – implementarea unui graf utilizand pointeri
Grafuri neorientate – drumul optim intr-un graf
parcurgerea in latime
Grafuri neorientate – parcurgerea in latime
Implementarea parcurgerii în lăţime pentru un graf neorientat
#include "stdio.h"
#include "conio.h"
int a[20][20],n;
void parc_latime()
{
int c[20],p,u,v,viz[20],im,nod;
printf("Dati nodul de pornire pentru parcurgere: ");
scanf("5d",&in);
for(nod=1;nod <= n; nod++)
viz[nod]=0;
p=1;u=1;
//traversarea începe cu nodul in; şirul c va păstra ordinea de traversare
c[1]=in;
//marcăm nodul in ca vizitat
viz[in]=1;
while(p <= u)
{
//vom căuta vecinii nodului v
v=c[p];
for(nod=1;nod <= n;nod++)
//dacă există muchie între nodul nod şi nodul v şi
//nodul nod nu a fost vizitat
if((a[v][nod]==1)&&(viz[nod]==0))
{
//incrementăm indicele şirului ce conţine traversarea
u++;
//punem nodul în şirul ce conţine traversarea
c[u]=nod;
//marcăm nodul ca vizitat
viz[nod]=1;
}
//vom căuta vecinii următorului nod din şirul ce conţine traversarea
p++;
}
for (ind=1;ind <= n;ind++)
printf("%d ",c[ind]);
putchar("\n");
}
Continue reading