2023年10月15日

144-17

摘要: 判断两树相似,相似是指,两个树都存在对应的左子树或右子树 递归方法 当两个结点都是空时:return 1; 当两个结点有一个为空时:return 0; 当两个都不为空时,开始递归,并返回左右子树的&&值 #include <stdio.h> #include <stdlib.h> typedef s 阅读全文

posted @ 2023-10-15 19:36 四马路弗洛伊德 阅读(22) 评论(0) 推荐(0)

144-16

摘要: 设计一个算法,将二叉树的叶结点按从左到右的顺序连成一个单链表,表头指针为Head,二叉树按照二叉链表方式存储,链接时用叶结点的右指针域来存放单链表指针。 只需要找到叶子节点,然后将第一个叶子节点赋值给Head,其余的叶子结点按照顺序使用自己的右指针连接起来 #include <stdio.h> #i 阅读全文

posted @ 2023-10-15 19:31 四马路弗洛伊德 阅读(33) 评论(0) 推荐(0)

2023年10月13日

144-15

摘要: 对满二叉树,知其先序序列,求后序序列 直接背代码吧,反正也不难 #include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node *lchild,*rchild; }TreeNode,*Tree; vo 阅读全文

posted @ 2023-10-13 22:01 四马路弗洛伊德 阅读(30) 评论(0) 推荐(0)

144-14

摘要: 求树宽 与非递归求树高相同,只不过是将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 四马路弗洛伊德 阅读(65) 评论(0) 推荐(0)

2023年10月12日

144-13

摘要: 给定结点p,q,在二叉树中找到两结点最近的祖宗结点 1. 首先,检查当前节点T是否为空,或者是否等于节点p或节点q。如果是,直接返回当前节点T,表示找到了p或q节点,或者已经遍历到叶子节点。2. 如果当前节点T不满足上述条件,则递归地处理左子树和右子树。3. 在左子树中递归调用`ANCESTOR`函 阅读全文

posted @ 2023-10-12 22:04 四马路弗洛伊德 阅读(25) 评论(0) 推荐(0)

144-12

摘要: 在二叉树中查找值为x的结点,找出该结点所有的祖宗结点,值为x的结点个数不多于1个 利用二叉树的后序非递归遍历,在Pop函数后判断是否结点值是否等于x,若等于,栈中全是x的祖宗结点,依次弹出 #include <stdio.h> #include <stdlib.h> #define MaxSize 阅读全文

posted @ 2023-10-12 21:01 四马路弗洛伊德 阅读(30) 评论(0) 推荐(0)

2023年10月11日

144-11

摘要: 给定二叉树,删除结点值为x的左右子树 利用层次遍历找到结点值为x的左右子树,分别删除; 删除算法 void Delete(Tree &T) { if(T) { Delete(T->lchild); Delete(T->rchild); free(T); } } 完整算法 #include <stdi 阅读全文

posted @ 2023-10-11 22:03 四马路弗洛伊德 阅读(38) 评论(0) 推荐(0)

144-10 感觉有点难

摘要: 二叉树使用二叉链表存储,求先序序列中第k个结点的值 首先明确先序遍历是根-左-右,使用递归算法,先左子树,后右子树。 为了防止在找到第k个结点之前就进入右子树的遍历,可以在递归调用时,将左子树的返回值存储在一个变量中,并进行判断。 如果左子树的返回值不等于特定的值(例如-1),则表示已经找到第k个结 阅读全文

posted @ 2023-10-11 21:42 四马路弗洛伊德 阅读(16) 评论(0) 推荐(0)

144-9

摘要: 链式存储的二叉树,交换左右结点位置 递归 #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 四马路弗洛伊德 阅读(15) 评论(0) 推荐(0)

143-8

摘要: 二叉树采用二叉链表存储,计算给定二叉树的所有双分支结点个数 递归思想 当根结点不存在左右结点时,return 0; 当根节点存在左右结点时,return Count(T->lchild)+Count(T->rchild)+1; 当根节点只存在一个结点时,return Count(T->lchild) 阅读全文

posted @ 2023-10-11 20:47 四马路弗洛伊德 阅读(17) 评论(0) 推荐(0)

导航