Có bạn nào biết code đồ họa vẽ mô hình cây tổng quát trong winform c++ thì vẽ giúp mình với

Có bạn nào biết code đồ họa vẽ cây tổng quát trong winform visual c++ thì vẽ giúp mình với, mình đang cần gấp lắm, code thuật toán c++ đây nha: Đề bài là vẽ mô hình cây tổng quát dùng visual c++ 2010 theo thuật toán duyệt theo thứ tự sau. Cảm ơn các bạn nha.
Code C++

#define MAXLENGTH 100 //chi so toi da cua mang
#define NIL -1
typedef char DataType;
typedef int Node;
typedef struct {
DataType Data[MAXLENGTH]; //Luu gia tri cua nut
Node Parent[MAXLENGTH]; //Cha cua nut i se luu o vi tri i trong mang
int MaxNode;
}Tree;
//Khoi tao cay rong
void MakeNull_Tree(Tree *T)
{
(*T).MaxNode = 0;
}
//Kiem tra cay rong
int EmptyTree(Tree T)
{
return T.MaxNode == 0;
}
//Xac dinh nut cha cua nut tren cay
Node Parent(Node n, Tree T)
{
if (EmptyTree(T) || (n>T.MaxNode - 1))
return NIL;
else
return T.Parent[n];
}
//Xac dinh gia tri cua nut tren cay
DataType Label_Node(Node n, Tree T)
{
if (!EmptyTree(T) && (n <= T.MaxNode - 1))
return T.Data[n];
}
//Xac dinh nut goc trong cay
Node Root(Tree T)
{
if (!EmptyTree(T))
return 0;
else
return NIL;
}
//Ham xac dinh con trai nhat cua mot nut
Node LeftMostChild(Node n, Tree T)
{
Node i;
int found;
if (n<0)
return NIL;
i = n + 1;
found = 0;
while ((i <= T.MaxNode - 1) && !found)
if (T.Parent == n)
found = 1;
else i = i + 1;
if (found)
return i;
else
return NIL;
}
//Ham xac dinh anh em ruot phai cua mot nut
Node RightSibling(Node n, Tree T)
{
Node i, parent;
int found;
if (n<0)
return NIL;
parent = T.Parent[n];
i = n + 1;
found = 0;
while ((i <= T.MaxNode - 1) && !found)
if (T.Parent == parent)
found = 1;
else i = i + 1;
if (found)
return i;
else
return NIL;
}
//Duyet theo thu tu sau
void PostOrder(Node n, Tree T)
{
Node i;
i = LeftMostChild(n, T);
while (i != NIL){
PostOrder(i, T);
i = RightSibling(i, T);
}
printf("%c ", Label_Node(n, T));
}
//Doc cay
void ReadTree(Tree *T){
int i;
MakeNull_Tree(&*T);
do {
printf("Cay co bao nhieu nut? ");
scanf_s("%d", &(*T).MaxNode);
} while (((*T).MaxNode<1) || ((*T).MaxNode>MAXLENGTH));
printf("Nhap nhan cua nut goc: ");
fflush(stdin);
scanf_s("%c", &(*T).Data[0]);
(*T).Parent[0] = NIL; /* nut goc khong co cha */
for (i = 1; i <= (*T).MaxNode - 1; i++){
printf("Nhap cha cua nut %d: ", i);
scanf_s("%d", &(*T).Parent);
printf("Nhap nhan cua nut %d: ", i);
fflush(stdin);
scanf_s("%c", &(*T).Data);
}
}


int _tmain(int argc, _TCHAR* argv[])
{
Tree T;
printf("Nhap du lieu cho cay tong quat\n");
ReadTree(&T);
printf("\nDanh sach duyet hau tu cua cay vua nhap la\n");
PostOrder(Root(T), T);
system("pause");
}


-Kết quả:
Nhập dữ liệu cho cây tổng quát
Cây có bao nhiêu nút 8
Nhập nhãn của nút gốc: A
Nhập cha của nút 1: 0
Nhập nhãn của nút 1: B
Nhập cha của nút 2: 0
Nhập nhãn của nút 2: C
Nhập cha của nút 3: 1
Nhập nhãn của nút 3: D
Nhập cha của nút 4: 1
Nhập nhãn của nút 4: E
Nhập cha của nút 5: 4
Nhập nhãn của nút 5: F
Nhập cha của nút: 4
Nhập nhãn của nút 6: G
Nhập cha của nút: 4
Nhập nhãn của nút 7: H
Danh sách duyệt hậu tự của cây vừa nhập là: D F G H E B C A.
 

VSupport

Ngây thơ trong tối
Reply: Có bạn nào biết code đồ họa vẽ mô hình cây tổng quát trong winform c++ thì vẽ giúp mình

1 thời sinh viên, giờ mấy dạng kiểu này quên hết rồi bạn :xuan-2015:
 

Thống kê

Chủ đề
102,787
Bài viết
470,610
Thành viên
340,593
Thành viên mới nhất
winspire
Top