第一章实验目的
掌握使用tree
第二章实验环境
希冀平台
VS code
第三章实验内容
创建一颗二叉树,并对其进行先序遍历。
第四章实验步骤
#include<stdio.h>
#include<stdlib.h>
typedef struct bi_tree_node
{
char data;
struct bi_tree_node* LChild;
struct bi_tree_node* RChild;
}BiTree_Node, * BiTree;
void preOrder(BiTree root); // 先序遍历
void createBiTree(BiTree* bi_tree); //创建二叉树
void visit( char data); //访问结点数据
int main()
{
BiTree bi_tree = NULL;
puts("请按先序序列输入一颗二叉树的结点数据,以'*'来代表空值:");
createBiTree(&bi_tree);
printf("\n先序序列:");
preOrder(bi_tree);
return 0;
}
void visit(char data)
{
putchar(data);
}
void createBiTree(BiTree* bi_tree)
{
char ch;
ch = getchar();
if (ch == '*')
*bi_tree = NULL;
else
{
*bi_tree = (BiTree)malloc(sizeof(BiTree_Node));
(*bi_tree)->data = ch;
createBiTree(&((*bi_tree)->LChild));
createBiTree(&((*bi_tree)->RChild));
}
}
void preOrder(BiTree root)
//先序遍历二叉树 root为指向二叉树(或某一子树)根节点的指针
{
if (root != NULL)
{
visit(root->data); //访问根节点
preOrder(root->LChild); //先序遍历左子树
preOrder(root->RChild);//先序遍历右子树
}
}
运行结果:
测试数据:ABCDE*GF***
第五章实验感悟
树这一章我认为是最重要的。再没学习树之前就已经听过树这一数据结构,不只是在数据结构这门课上,数据库、web、线性代数上都有用到对树的理解。为了学好树,刷了两天的网课。不只是概念很多而且套娃算法也是不好理解。真正掌握遍历的三种算法是最关键的地方,其实也是相当不好理解的地方。