树和二叉树
五星上将美玉
个人总结使用 请选择性参考
展开
-
二叉树的基础操作
创建typedef struct node{ char val; struct node *lc, *rc;}BiNode,*BiTree;char a[1024]; int i = 1;void Creat(BiTree &T){ char n; cin >> n; if (n == '#') T = NULL; else { T = new BiNode; T->val = n; Creat(T->lc); Creat(原创 2021-12-13 17:43:21 · 293 阅读 · 0 评论 -
队列的操作
设输入一整数序列:a1,a2,a3,...,an(输入序列以-2结束),编写算法实现如下功能:使用循环队列存储输入的整数(设队列的存储容量固定为6),当ai不等于-1时将ai入队;当ai等于-1时将当前队头元素出队。根据输入序列完成入队出队操作,并将队列中所有的数据输出(先输出队头元素),当队列为空时输出NULL。【输入形式】【输出形式】【样例输入】1 2 3 -1 -1 5 6 -2 //输入序列【样例输出】3 5 6 //整个过程结束后队列中现有元素情况Tips:队列要连起来的话,需要在逻原创 2021-11-02 19:52:44 · 295 阅读 · 0 评论 -
二叉树求第K位的值
【问题描述】编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值。【输入形式】以井号作为空树,输入一个序列,按照先序方式构建一颗二叉树,输入一个整数k【输出形式】输出先序序列中第k个位置的元素值【样例输入】ABD##E##C##5【样例输出】CK=5,如果要把f传入参数的话,就需要递归传来传去,非常的麻烦,所以咱们创建的时候就好好创建,有其他操作换个函数再说Tips:读取第K位的值,联想到”顺序数组“非常的方便,那不妨将二叉树先序输出,复制为数组 这样一...原创 2021-11-02 11:29:38 · 720 阅读 · 0 评论 -
二叉树交换子树
【问题描述】编写递归算法,将二叉树中所有节点的左、右子树相互交换。【输入形式】按先序序列输入二叉树各结点的值,结点的值是单字符,空子树输入空格。【输出形式】先输出交换后的二叉树的先序序列,再输出中序序列。【样例输入】例如三个的满二叉树,输入:a,b, , ,c, , (b后有两个空格,表示b有两棵子树;c后有两个空格)【样例输出】上面的满二叉树交换后的输出: acb //先序序列 cab //中序序列【样例说明】【评分标准】对于这种带空格的输入就很狗了,太刁钻了吧,...原创 2021-11-01 23:51:24 · 384 阅读 · 0 评论 -
复制二叉树。
问题描述】编写复制一颗二叉树树的非递归算法。【输入形式】先序序列创建二叉树,数据类型为字符型,空结点用'*'表示。【输出形式】<中序输出该二叉树,以空格分隔数据><回车><中序输出复制后的二叉树,以空格分隔数据>【样例输入】ABC**D**CE**F**【样例输出】C B D A E C FC B D A E C F【样例说明】【评分标准】tips:这道题很简单 基本没什么考的 传入传出 唯一就是复制操作时 根值传递完成后...原创 2021-11-01 17:33:06 · 486 阅读 · 2 评论 -
删除二叉树中以值x结点为根的子树
问题描述】编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。【输入形式】先序序列构造二叉树,结点数据类型为字符型,空结点用'#'表示。输入要删除的结点值。【输出形式】先序序列输出删除后的二叉树。【样例输入】ABC##D##C#F##C【样例输出】ABD【样例说明】【评分标准】...原创 2021-11-01 16:10:43 · 2415 阅读 · 3 评论