Kolory w kopcu

0

Mam problem. Do wykonania mam pełne drzewo binarne. Zadanie polega na tym, bo najpierw wpisać losowe cyfry do kopca max, a następnie wskazać, które cyfry/liczby nie spełniają jego właściwości. Kopiec narysowany mam (mały, bo mały, ale zawsze). Jednak tutaj pojawia się problem - jeśli dodałabym do kopca jakikolwiek inny znak, jego kształt by się posypał, więc postanowiłam błędne cyfry pokolorować - tylko nie wiem jak...

0

ale o co chodzi..

0
  1. Rysowany jest kopiec
  2. Program chodzi po kopcu i sprawdza warunek (ojciec >= syn)
  3. Program koloruje liczby niespełniające warunku.
    Nie wiem jak je kolorować.
0

gdzie ten program, w jakiej technologii, to jakieś ui, czy co, że chcesz kolorować? serio nie mam pojęcia o co chodzi, może ktoś inny

0

To jest C++

main

#include <cstdlib>
#include <iostream>
#include <ctime>
#include "functions.h"

using namespace std;


int main(int argc, char *argv[])
{   
    int i, b;
    int n = 4;
    int a = 15;
    int tablica[a];
    srand( time( NULL ) );
    
    
  for(i=1; i<=a; i++)
    {
             tablica[i]=(rand() % 9) + 1;
            cout<<i+1<<": "<<tablica[i]<<endl;
    }
   cout<<endl<<"wyswietlanie: "<<endl;
   wyswietl(tablica);

   cout<<endl<<endl;
    
    
    system("PAUSE");
    return EXIT_SUCCESS;
} 

plik .h

#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include <cstdlib>
#include <iostream>

using namespace std;

int Left (int i);
int Right (int i);
int Parent (int i);
void wyswietl(int tablica[]);


#endif 

plik .cpp

#include "functions.h"
#include <cstdlib>
#include <iostream>



using namespace std;

	

int Left (int i)
{
     return (2*i);
 }
 
 
int Right (int i)
{
     return ((2*i)+1);
 }
 
 
int Parent (int i)
{
     return i/2;
 }
 
 void wyswietl(int tablica[])
 {
    int L, R, P, i;
	int N = 15;
	int x, k, j;

	x = (N + 1) / 2; k = 2;
  for(i = 1; i <= N; i++)
	{
	    for(j = 1; j <= x - 1; j++) cout << " ";
	    cout << tablica[i];
	    for(j = 1; j <= x; j++) cout << " ";
	    if(i + 1 == k)
	    {
	      k += k; x /= 2; cout << endl;
	    }
  }
  for(i=1; i<= N; i++)
    {
	L=Left(i);
	R=Right(i);     
  	P=Parent(i);
  	}
  	
  }
0

ja nie wiem czy to w ogóle przypomina binary tree, popatrz np. tutaj, poczytaj z czego sie składa itd itd itd
http://www.cprogramming.com/tutorial/lesson18.html

0

Tak, to przypomina binary tree... Tylko, że elementy nie są w nim ustawione tak, jak w kopcu max i dlatego mam je zaznaczyć...

0

Możesz w programie wygenerować schemat diagramu dla Graphviz - będzie wyglądało bardziej Pro przy małym nakładzie pracy.

http://www.graphviz.org/

Przykład jak to zrobić:
https://devjeetr.wordpress.com/2012/04/30/visualising-a-binary-search-tree-using-graphviz/

0

Nie mogę zrobić tego programem. Potrzebuję to napisać w C++.

1 użytkowników online, w tym zalogowanych: 0, gości: 1