Example #1
0
Afisare(nod *n)
{
   if (n != NULL)
   {
      printf(" %c", n->c);
      Afisare(n->s);
      Afisare(n->d);
   }

   return 0;
}
Example #2
0
int main() {
    // declarare lista vida
    Element **array;
    int nrListe, j, sumElemente = 0;
	
    printf("Cate liste vrei?");
    scanf("%d", &nrListe);
    array = create_array(nrListe, &sumElemente);
    // Afisare liste
    for(j=0;j<nrListe;j++) {
		printf("\n Lista [%d]\n", j);
		Afisare(array[j]);
	}
    printf("\n");
    
    
    // Definim un nou heap in care vom tine toate elementele
    struct heapStruct *h;
    h = initHeap();
    // Testam adaugarea primelor elemente din fiecare lista
    for(j=0;j<nrListe;j++) 
		insert(h, array[j]->valoare, j);
    printHeap(h);
	
	// Incepem sa punem primul element de pe heap primul
	int *result;
	result = (int*)malloc(sizeof(int)*sumElemente);
	int c = 0;
	printf("Marimea la heap: %d", nrListe);
	printf("Cate elemente vom avea: %d", sumElemente);
	while( nrListe > 0) {         
		heapElement min;
		int i, k;
		min = removeMin(h);
		i = min.list_index;
		k = min.value;
		printf("\n [Valoare|index] = [%d|%d]\n", k, i);
		nrListe--;
		// Trebuie sa stergem nodul cu indexul i
		StergereElement(&array[i]);
		
		
		result[c++] = k;
		if (array[i] != NULL && c < 100)  {
			insert(h, array[i]->valoare, i);         
			nrListe++;
		}
	}
	
	int i;
	printf("\n");
	for(i=0;i<sumElemente;i++) 
		printf("%d  ", result[i]);
	printf("\n");
	
	// In absenta lui free apareau anumite erori interesante
    free(array);

    return 0;
}
Example #3
0
main()
{
   nod *n, *p, *q;

   clrscr();
   printf("\n");

   printf(" Arborele afisat in preordine (+ dupa fiecare nod nr. de fii) : \n");
   printf(" ");
   gets(s);
   n= CreareArbore(NULL);
   Afisare(n);
   for (p= n; p->s != NULL; p= p->s);
   printf("%c... ", p->c);
   q= p;
   for (p= q; p->t != NULL; p= p->t);
   printf("%c !!!", p->c);

   getch();
   return 0;
}
Example #4
0
main()
{
   int i, j;

   clrscr();
   printf("\n");

   CitireDate();
   k= 1;
   for (i= 1; i <= m; i++)
      for (j= 1; j <= n; j++)
	 if (a[i][j] == 1)
	 {
	    k++;
	    a[i][j]= k;
	    Back(2, i, j);
	 }
   Afisare();

   return 0;
}