《数据结构》有二叉树如图1所示:(1)用三种遍历方法遍历二叉树,写出遍历结果,并总结三种遍历方法的特征。(2)选择其中的一种遍历结果,采用至少两种排序方法将其按从大到小的顺序排列。(3)简要比较和评价所选排序算法。作业要求:(1)排序方法需描述算法思路并用程序描述算法,程序请添加注释;(2)排序算法的评价和比较主要从复杂度入手。第一题//二叉树结点typedefstructBiTNode{//数据chardata;//左右孩子指针structBiTNode*lchild,*rchild;}BiTNode,*BiTree;//按前序遍历创建二叉树intCreateBiTree(BiTree&T){chardata;//按先序次序输入二叉树中结点的值(一个字符)表示空树seanf("%c",&data);if(data==#){T=NULL;,‘#'}else{T=(BiTree)malloc(sizeof(BiTNode));//生成根结点T->data=data;//构造左子树CreateBiTree(T->lchild);//构造右子树CreateBiTree(T->rchild);}return0;}//输出voidVisit(BiTreeT){if(T->data!='#'){printf("%c",T->data);}}//前序遍历voidPreOrder(BiTreeT){if(T!=NULL){//访问根节点Visit(T);//访问左子结点PreOrder(T->lchild);//访问右子结点PreOrder(T->rchild);}}//中序遍历voidInOrder(BiTreeT){if(T!=NULL){//访问左子结点InOrder(T->lchild);//访问根节点Visit(T);//访问右子结点InOrder(T->rchild);}}//后序遍历voidPostOrder(BiTreeT){if(T!=NULL){//访问左子结点PostOrder(T->lchild)//访问右子结点PostOrder(T->rchild)//访问根节点Visit(T)}}前序/先序遍历:结果:1245736特征:访问根结点的操作发生在遍历其左右子树之前中序遍历:结果:4275136特征:访问根结点的操作发生在遍历其左右子树之中(间)后序遍历:结果:4752631特征:访问根结点的操作发生在遍历其左右子树之后第二题采用中序遍历的结果:4275136从大到小排序直接插入排序:voidInsSort(inta[],intk){intj;for(inti=1;ia[i-1]){inttemp=a[i];for(j=i-1;j>=0&&a[j]