先决条件: graphics.h,如何包含graphics.h?
在 C/C++ 中有 graphics.h 头文件,用于创建线、圆等对象。
给定一个由N 个整数组成的数组arr[] ,任务是使用 graphics.h 编写 C++ 程序来创建树。
方法:要运行程序,我们需要包含以下头文件:
#include
我们将在以下功能的帮助下创建一棵树:
- setcolor(color) :此函数存在于graphic.h 头文件中,用于将当前绘图颜色设置为新颜色。
- floodfill(pattern, color) :函数用于填充封闭区域。当前填充图案和填充颜色用于填充该区域。
- circle(x, y, radius) :头文件 graphics.h 包含 circle()函数,该函数绘制一个以 (x, y) 为中心并给定半径的圆。
- outtextxy() :头文件 graphics.h 包含 outtextxy()函数,该函数在屏幕上的指定点 (x, y) 显示文本或字符串。
下面是在C++中使用图形绘制树的实现:
C++
// C++ program to draw the tree
// in graphics.h
#include
#include
#include
#include
using namespace std;
// Function that prints Tree using
// functions graphic.h header file
void printTree(int x, int y, int* array,
int index,
int total_elements)
{
// Base Case
if (index >= total_elements)
return NULL;
// Convert int value into string
ostringstream str1;
str1 << array[index];
string str2 = str1.str();
char* str = &str2[0u];
// Set color of the boundary of
// circle as green
setcolor(GREEN);
// Draw the circle of radius 15
// that represent node of Tree
circle(x, y, 15);
floodfill(x, y, GREEN);
// Print the values of the node
// in the circle
outtextxy(x - 2, y - 3, str);
// Set the color of the line
// from parent to child as green
setcolor(GREEN);
// Evaluating left and right child
int left = 2 * index + 1;
int right = 2 * index + 2;
// Recursively draw the left subtree
// and the right subtree
printTree(x - y / (index + 1), y + 50,
array, left, total_elements);
printTree(x + y / (index + 1), y + 50,
array, right, total_elements);
// Draw the line (or link) when the
// node is not the leaf node
if (left < total_elements) {
line(x, y, x - y / (index + 1), y + 50);
}
if (right < total_elements) {
line(x, y, x + y / (index + 1), y + 50);
}
return NULL;
}
// Driver Code
int main()
{
// Initialize graphic driver
int gd = DETECT, gm;
initgraph(&gd, &gm, "None");
// Consider the tree as represented
/*
1
/ \
2 3
/ \ / \
4 5 6 7
/ \ /
8 9 10
*/
// Given array arr[]
int array[] = { 1, 2, 3, 4, 5,
6, 7, 8, 9, 10 };
// Function Call
printTree(300, 100, array, 0, 10);
getch();
// closegraph function closes the
// graphics mode and deallocates
// all memory allocated by
// graphics system
closegraph();
}
输出:
想要从精选的视频和练习题中学习,请查看C++ 基础课程,从基础到高级 C++ 和C++ STL 课程,了解语言和 STL。要完成从学习语言到 DS Algo 等的准备工作,请参阅完整的面试准备课程。