![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
wangsimiao118
这个作者很懒,什么都没留下…
展开
-
树-堆结构练习——合并果子之哈夫曼树
这道题的算法思想就是利用优先队列的自动排序功能来模拟哈夫曼编码,从而使得每次将元素插入队列后,使其前两个仍为整个队列的最小的两个。代码如下:#include using namespace std;int main(){ int v[1000]; int n,i,a[20010]; scanf("%d",&n); memset(v,0,siz原创 2016-08-12 15:58:39 · 395 阅读 · 1 评论 -
数据结构实验之二叉树的建立与遍历
这道题的算法思想就是利用好递归的思想建立二叉树,然后对二叉树进行操作。代码如下:#include #include #include char a[55];int len,i;struct node{/*二叉树的定义*/ char data; struct node *lchild,*rchild;};struct node* Createt原创 2016-08-08 19:55:03 · 368 阅读 · 0 评论 -
数据结构实验之二叉树三:统计叶子数
代码如下:#include #include #include char a[55];int len,i;struct node{/*二叉树的定义*/ char data; struct node* lchild,*rchild;};struct node *Createtree(){/*利用先序遍历的数据建立二叉树*/ struct原创 2016-08-08 20:37:53 · 322 阅读 · 0 评论 -
数据结构实验之二叉树五:层序遍历
这道题的算法思想就是:按照先序遍历的顺序建立一个二叉树,然后利用结构体数组进行层次遍历,层次遍历时,注意要把每个结点的左右结点存入结构体数组。代码如下:#include #include #include char a[55];int len,i;struct node{ int data; struct node* lchild,*rchild;原创 2016-08-09 21:40:27 · 268 阅读 · 0 评论 -
数据结构实验之二叉树一:树的同构
这道题的算法思想就是在建立好的二叉树的基础上,通过依次遍历两个二叉树,比较两个二叉树的同一结点的左右孩子结点来确认它们是否同构。代码如下:#include#include#includeint visited[100];int num=0;struct node{ char data; struct node *lchild,*rchild;转载 2016-08-10 15:37:36 · 527 阅读 · 0 评论 -
数据结构实验之求二叉树后序遍历和层次遍历
这道题的算法思想:主要是根据题中所给出的先序遍历和后序遍历的结果来创建二叉树,我们可以利用分而治之的思想来创建它的左子树和右子树,后面的层次遍历和后序遍历则比较容易理解。代码如下:#include #include #include struct node{ char data; struct node *lchild,*rchild;};struc原创 2016-08-10 21:38:10 · 266 阅读 · 0 评论 -
树结构练习——排序二叉树的中序遍历
这道题的算法思想就是利用输入的数据和根节点的数据相比较,若大于根节点的数值,就把它放入右子树中;否则,就放入左子树中;然后中序遍历输出数据即可。代码如下:#include #include struct node{ int data; struct node *lchild,*rchild;};struct node* Createtree(struct原创 2016-08-11 14:30:33 · 480 阅读 · 0 评论 -
二叉排序树
这道题的算法思想主要是在建立排序二叉树的基础上,对两个二叉树进行比较,需要考虑几种情况。代码如下:#include #include #include struct node{ int data; struct node *lchild,*rchild;};struct node *Createtree(struct node *root,int d原创 2016-08-11 17:07:41 · 189 阅读 · 0 评论 -
数据结构实验之二叉树四:还原二叉树
这道题的关键点在于根据给出的先序序列和中序序列来建立二叉树,建立二叉树,中序遍历中根节点的左边全都是左子树的中序,右边全是右子树中序。然而每个子树的先序序列的第一个节点是子树的根,而且向后移动中序查找得到的左子树节点数便可分开得到左右子树。因此可以用递归分而治之。代码如下:#include #include struct node{ char data; str原创 2016-08-11 19:09:01 · 1630 阅读 · 0 评论 -
数据结构实验之二叉树七:叶子问题
这道题主要的思想就是按照先序遍历的结果建立二叉树,然后再用层次遍历,即可求得叶子的结点。代码如下:#include #include #include int len,i;char a[55];struct node{ char data; struct node *lchild,*rchild;};struct node *Createtr原创 2016-08-11 20:08:47 · 280 阅读 · 0 评论 -
数据结构实验之二叉树六:哈夫曼编码
这道题的主要思想是利用优先队列的自动排序来实现每次入队后队列的前两个均为整个队列最小的两个。代码如下:#include using namespace std;int main(){ int i,la,lh,v[1000]; string s; while(cin>>s){ memset(v,0,sizeof(v));转载 2016-08-12 15:24:43 · 789 阅读 · 0 评论 -
数据结构实验之二叉树二:遍历二叉树
这道题的算法思想就是通过递归的思想来建立二叉树和遍历二叉树。代码如下:#include #include #include char ch[53];/*定义全局变量数组,方便下面的多组输入*/int len,len1;struct node{/*二叉树的定义*/ char data; struct node *lchild,*rchild;};原创 2016-08-08 16:58:01 · 261 阅读 · 0 评论