第04次作业-树

1.学习总结

1.1树的思维导图

1.2 树结构学习体会

认识:树是一种非线性数据结构,很像自然界中的树呢样,从树根到大分支,小分支,直达叶子把数据联系起来,这种数据结构叫做树结构。树是n个节点的有限集合。值得一提的是树中只有呢些下面不在右分支的节点才能成为叶子结点。

困难:学习树所遇到的最大困难就是很难将已经懂得的内容用代码的方式转换出来,到目前为止甚至连树的建立都很困难以及表达示的转换问题。

树的结构可以解决的问题:树的前,中,后序遍历、三种计算表达式的转换、哈夫曼编码

2.PTA实验作业

2.1 题目1:二叉树操作集

2.1.1 设计思路(伪代码或流程图)

void 创建树(BTree &BT,string str)
{
    定义树T
    定义队列Q用来存放树的节点
    定义i=0用来计数
    判断str[i]!=0
    {
        BT申请空间
        将str[i]赋予BT->data
        初始化BT的左右孩子
        BT的节点入队
    }
    否则 重新进入函数

    i++;
    队列Q不为空while循环
    {
        将队头元素赋给树T
        元素出队
        判断str[i]=='#'||str[i]=='0'
        {
            令左孩子为空
        }
        否则
        {
            给T的左子树申请空间
            将str[i]赋给左孩子
            初始化左子树的左右孩子
            T的左孩子入队 
        }
        i++;
        判断str[i]=='#'||str[i]=='0'
        {
            初始化T的左孩子
        }
        否则
        {
            给T的右子树申请空间
            将str[i]赋给右孩子
            初始化右子树的左右孩子
            T的右孩子入队 
        }
        i++; 
    }
}

2.1.2 代码截图

2.1.3 PTA提交列表说明。

说明:1.部分正确:一开始忽略了要将左右孩子初始化的步骤----添加 “T->lchild=T->rchild=NULL;”将左右孩子初始化。

2.2 题目2:

2.2.1 设计思路(伪代码或流程图)

2.2.2 代码截图

2.2.3 PTA提交列表说明。

说明:

猜你喜欢

转载自www.cnblogs.com/wengjingming/p/8993330.html