兰州大学网络教育学院 数据结构命题作业 二叉树答案:第一题//二叉树结点typedef struct BiTNode{//数据char data;//左右孩子指针struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//按前序遍历创建二叉树int CreateBiTree(BiTree &T){char data;//按先序次序输入二叉树中结点的值(一个字符),‘#’表示空树scanf("%c",&data);if(data == '#'){T = NULL;}else{T = (BiTree)malloc(sizeof(BiTNode));//生成根结点T->data = data;//构造左子树CreateBiTree(T->lchild);//构造右子树CreateBiTree(T->rchild);}return 0;}//输出void Visit(BiTree T){if(T->data != '#'){printf("%c ",T->data);}}//前序遍历void PreOrder(BiTree T){if(T != NULL){//访问根节点Visit(T);//访问左子结点PreOrder(T->lchild);//访问右子结点PreOrder(T->rchild);}}//中序遍历void InOrder(BiTree T){if(T != NULL){//访问左子结点InOrder(T->lchild);//访问根节点Visit(T);//访问右子结点InOrder(T->rchild);}}//后序遍历void PostOrder(BiTree T){if(T != NULL){//访问左子结点PostOrder(T->lchild);//访问右子结点PostOrder(T->rchild);//访问根节点Visit(T);}}前序/先序遍历:结果:1245736特征:访问根结点的操作发生在遍历其左右子树之前中序遍历:结果:4275136特征:访问根结点的操作发生在遍历其左右子树之中(间)后序遍历:结果:4752631特征:访问根结点的操作发生在遍历其左右子树之后第二题采用中序遍历的结果:4275136 从大到小排序直接插入排序:void InsSort(int a[], int k){int j;for(int i=1;i a[i-1]){int temp=a[i];for(j=i-1;j>=0 && a[j]