摘要: 设计一个算法,将二叉树的叶结点按从左到右的顺序连成一个单链表,表头指针为Head,二叉树按照二叉链表方式存储,链接时用叶结点的右指针域来存放单链表指针。 只需要找到叶子节点,然后将第一个叶子节点赋值给Head,其余的叶子结点按照顺序使用自己的右指针连接起来 #include <stdio.h> #i 阅读全文
posted @ 2023-10-15 19:31 四马路弗洛伊德 阅读(62) 评论(0) 推荐(0)
摘要: 对满二叉树,知其先序序列,求后序序列 直接背代码吧,反正也不难 #include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node *lchild,*rchild; }TreeNode,*Tree; vo 阅读全文
posted @ 2023-10-13 22:01 四马路弗洛伊德 阅读(56) 评论(0) 推荐(0)
摘要: 求树宽 与非递归求树高相同,只不过是将high++变成了最大值的判断 #include <stdio.h> #include <stdlib.h> #define MaxSize 100 typedef struct node{ int data; struct node *lchild,*rchi 阅读全文
posted @ 2023-10-13 20:47 四马路弗洛伊德 阅读(90) 评论(0) 推荐(0)
摘要: 给定结点p,q,在二叉树中找到两结点最近的祖宗结点 1. 首先,检查当前节点T是否为空,或者是否等于节点p或节点q。如果是,直接返回当前节点T,表示找到了p或q节点,或者已经遍历到叶子节点。2. 如果当前节点T不满足上述条件,则递归地处理左子树和右子树。3. 在左子树中递归调用`ANCESTOR`函 阅读全文
posted @ 2023-10-12 22:04 四马路弗洛伊德 阅读(56) 评论(0) 推荐(0)
摘要: 在二叉树中查找值为x的结点,找出该结点所有的祖宗结点,值为x的结点个数不多于1个 利用二叉树的后序非递归遍历,在Pop函数后判断是否结点值是否等于x,若等于,栈中全是x的祖宗结点,依次弹出 #include <stdio.h> #include <stdlib.h> #define MaxSize 阅读全文
posted @ 2023-10-12 21:01 四马路弗洛伊德 阅读(55) 评论(0) 推荐(0)
摘要: 给定二叉树,删除结点值为x的左右子树 利用层次遍历找到结点值为x的左右子树,分别删除; 删除算法 void Delete(Tree &T) { if(T) { Delete(T->lchild); Delete(T->rchild); free(T); } } 完整算法 #include <stdi 阅读全文
posted @ 2023-10-11 22:03 四马路弗洛伊德 阅读(68) 评论(0) 推荐(0)
摘要: 二叉树使用二叉链表存储,求先序序列中第k个结点的值 首先明确先序遍历是根-左-右,使用递归算法,先左子树,后右子树。 为了防止在找到第k个结点之前就进入右子树的遍历,可以在递归调用时,将左子树的返回值存储在一个变量中,并进行判断。 如果左子树的返回值不等于特定的值(例如-1),则表示已经找到第k个结 阅读全文
posted @ 2023-10-11 21:42 四马路弗洛伊德 阅读(44) 评论(0) 推荐(0)
摘要: 链式存储的二叉树,交换左右结点位置 递归 #include <stdio.h> #include <stdlib.h> #define MaxSize 100 typedef struct node{ int data; struct node *lchild,*rchild; }TreeNode, 阅读全文
posted @ 2023-10-11 20:55 四马路弗洛伊德 阅读(39) 评论(0) 推荐(0)
摘要: 二叉树采用二叉链表存储,计算给定二叉树的所有双分支结点个数 递归思想 当根结点不存在左右结点时,return 0; 当根节点存在左右结点时,return Count(T->lchild)+Count(T->rchild)+1; 当根节点只存在一个结点时,return Count(T->lchild) 阅读全文
posted @ 2023-10-11 20:47 四马路弗洛伊德 阅读(45) 评论(0) 推荐(0)
摘要: 树结点由二叉链表存储,判定给定的树是否是完全二叉树 用到了辅助队列 只要出队的结点非空,就将其左右结点入队,无论左右结点是否为空。 若出队的结点为空,就让队列结点依次出队,若存在非空结点,就说明树不是完全二叉树。 #include <stdio.h> #include <stdlib.h> #def 阅读全文
posted @ 2023-10-11 20:28 四马路弗洛伊德 阅读(39) 评论(0) 推荐(0)