ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【自考】数据结构导论-第4章二叉树代码

2021-05-08 20:58:35  阅读:174  来源: 互联网

标签:lchild NULL 真题 bt 二叉树 rchild 数据结构 自考


目录

二叉树先,中,后序遍历【1710真题】

计算二叉树的高度 P106  【1704真题】

以二叉链表作存储的结构,试编写求二叉树叶子结点个数的算法:P225   【1904真题】【1810真题】【1404真题】

设计算法求二叉树的结点的个数

设计算法按先序次序打印二叉树T中叶子结点的值

树的存储结构采用孩子兄弟链表,请编写树的按层次遍历算法


二叉树先,中,后序遍历【1710真题】

void preorder (BinTree bt)
{
    if(bt!=NULL){
        visit(bt);             //访问根结点bt
        preorder(bt->lchild);  //先序遍历左子树
        preorder(bt->rchild);  //先序遍历右子树
    }
}
void inorder (BinTree bt)
{
    if(bt!=NULL){
        inorder(bt->lchild);  //中序遍历左子树
        visit(bt);             //访问根结点bt
        inorder(bt->rchild);  //中序遍历右子树
    }
}
void postorder (BinTree bt)
{
    if(bt!=NULL){
       postorder(bt->lchild);  //后序遍历左子树
       postorder(bt->rchild);  //后序遍历右子树
       visit(bt);             //访问根结点bt
    }
}

计算二叉树的高度 P106  【1704真题】

int Height(BinTree bt){
    int lh,rh;
    if(bt==NULL) return 0;
    else
    {
       lh=Height(bt->lchild);
       rh=Height(bt->rchild);
       return 1+(lh>rh?lh:rh);
    }
}

以二叉链表作存储的结构,试编写求二叉树叶子结点个数的算法:P225   【1904真题】【1810真题】【1404真题】

typedef struct btnode{
    DataType data;
    struct  btnode *lchild,*rchild;
}*BinTree;

int leafnode_num(BinTree bt){
    if(bt==NULL) return 0;
    else{
    if((bt->lchild==NULL)&&(bt->rchild==NULL)) return 1;
    else  return leafnode_num(bt->lchild)+leafnode_num(bt->rchild);
 }
}

设计算法求二叉树的结点的个数

typedef struct btnode{
    DataType data;
    struct  btnode *lchild,*rchild;
}*BinTree;

int node_num(BinTree bt){
    if(bt==NULL) return 0;
    else{
     return node_num(bt->lchild)+node_num(bt->rchild)+1;
}
}

设计算法按先序次序打印二叉树T中叶子结点的值

typedef struct btnode{
    int data;
    struct  btnode *lchild,*rchild;
}*BinTree;

int preorder(BinTree bt){
    if(bt!=NULL){
    if((bt->lchild==NULL)&&(bt->rchild==NULL))
    {
       printf("%d",bt->data);
       preorder(bt->lchild);
       preorder(bt->rchild);
    }
  }
}

树的存储结构采用孩子兄弟链表,请编写树的按层次遍历算法

 

 

 

标签:lchild,NULL,真题,bt,二叉树,rchild,数据结构,自考
来源: https://blog.csdn.net/tina11241124/article/details/116543050

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有