栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构--树与二叉树练习题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构--树与二叉树练习题

1 . 设一棵二叉树的先序序列:ABDFCEGH,中序序列:BFDAGEHC.
(1)画出这棵二叉树。
(2)画出这棵二叉树的后序线索树。
(3)将这棵二叉树转换成对应的树(或森林)

2 . 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07、0.19、0.02、0.06、0.32、0.03、0.21和0.10。
(1)试为这8个字母设计哈夫曼编码。
(2)试设计另一种由二进制表示的等长编码方案。
(3)对于上述实例,比较两种方案的优缺点。

3 . 【408真题】如果一棵非空k(k≥2)叉树T中每个非叶子结点都有k个孩子,则称T为正则后k树。请回答下列问题并给出推导过程。

(1)若T有m个非叶子结点,则T中的叶子结点有多少个?
(2)若T的高度为h(根的高度为1),则T的结点个数最多为多少个?最少为多少个?(提示,答案皆与K有关)

4 . 【算法题】以二叉链表为存储结构,交换二叉树每个结点的左孩子和有孩子。(编程实现后,只需将swapLR函数写在本子上)

//二叉树编程练习
typedef char ElemType;

typedef struct BiTNode{
    //数据域
    ElemType data;
    //指向左孩子结点的指针
    struct BiTNode *lchild;
    //指向左孩子结点的指针
    struct BiTNode *rchild;
}BiTNode, *BiTree;

//创建一个二叉树
//按照先序遍历创建二叉树,空节点使用#表示,每个字符以空格隔开
//ABD##E##CF##G##    是一个层次遍历序列为ABCDEFE的满二叉树
int CreateBiTree(BiTree *T){
    char ch;
    scanf("%c", &ch);
    //如果输入为空,则返回一颗空树
    if(ch == '#'){
        *T = NULL;
    } else {
        *T = (BiTNode *) malloc(sizeof(BiTNode));
        if(!(*T)){
            exit(OVERFLOW);
        }
        (*T)->data = ch;
        CreateBiTree(&((*T)->lchild));
        CreateBiTree(&((*T)->rchild));
    }
    return OK;
}

//交换二叉树每个结点的左右子树
void swapLR(BiTree *T){
  	//...
}

//打印二叉树
void printTree(BiTNode *root, int spaces) {
    int loop;
    while (root != NULL) {
        printTree(root->rchild, spaces + 4);

        for (loop = 1; loop <= spaces; loop++) {
            printf(" ");
        }
        printf("%cn", root->data);
        printTree(root->lchild, spaces + 4);
        root = NULL;
    }
}

int main(int argc, const char * argv[]) {
    BiTree root;
    CreateBiTree(&root);
    printf("root 结点的值为:%cn", root->data);
    printf("root 结点左子树的值为:%cn", root->lchild->data);
    printf("root 结点右子树的值为:%cn", root->rchild->data);
    
    printTree(root, 0);
  	//调用交换二叉树
  	swapLR(&root);
  	printTree(root, 0);
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号