![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
courtesy.
hhhhhhh
展开
-
树的同构啊
input:8A 1 2B 3 4C 5 -D - -E 6 -G 7 -F - -H - -8G - 4B 7 6F - -A 5 1H - -C 0 -D - -E 2 -output:Yes(测试数据对应图1)#include<stdio.h>#include<stdlib.h>typedef struct node{ char data; int l; int r;}tree;tree T1[...原创 2021-10-14 22:09:28 · 53 阅读 · 0 评论 -
哈夫曼编码
字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。哈夫曼编码常被用于数据文件压缩中,其压缩率通常在20%~90%之间。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。输入数据有多组,每组数据一行,表示要编码的字符串。对应字符的ASCII编码长度la,huffman编码长度lh和la/lh的值(保留一位小数),数据之间以空原创 2021-10-06 12:34:29 · 481 阅读 · 0 评论 -
(中序后序)求二叉树的深度
已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。输出二叉树的深度。2dbgeafcdgebfcalnixulinux43#include<stdio.h>#include<string.h>#include<stdlib.h>char lat[55], ino[55];typedef struc原创 2021-10-06 12:32:08 · 237 阅读 · 0 评论 -
(先序中序)还原二叉树
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。输出一个整数,即该二叉树的高度。9ABDFGHIECFDHGIBEAC5#include<stdio.h>#include<string.h>#include<stdlib.h>typedef原创 2021-10-06 12:30:28 · 379 阅读 · 0 评论 -
哈夫曼编码
#include <stdio.h>#include <stdlib.h>#include <string.h>void sqort(int a[], int l,int r){ int i, j, key; i = l; j = r; key = a[l]; if(l >= r) return; while(i < j) { while(i < j&am.原创 2021-10-03 11:03:06 · 49 阅读 · 0 评论 -
统计叶子数
题目描述:已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。//同样省略建立二叉树的过程 见->遍历二叉树int count = 0;void LeafNum(BiTree T){ if(T){ if(T->lc == NULL && T->rc == NULL) count ++; LeafNum(T->lc);原创 2021-10-03 10:25:08 · 84 阅读 · 0 评论 -
层序遍历二叉树
题目描述:已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。//建立二叉树的过程已在 文章:遍历二叉树 中写过,在这里就省略了void LevelOrder(BiTree T){ InitQueue(Q); //初始化辅助队列 BiTree p; EnQueue(Q, T); //将根结点入队 while(!IsEmpty(Q)){ //队列不空则循环 DeQueue(Q, p); //队头原创 2021-10-03 10:10:48 · 59 阅读 · 0 评论 -
遍历二叉树
题目描述: 已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。char str[55]; //存放字符串int i = 0; //遍历字符串void CreateTree(BiTree &T) //建立二叉树{ if(str[i] == ',') { i ++; T = NULL; } else { T = (BiTre原创 2021-10-03 09:50:17 · 49 阅读 · 0 评论