二叉树
村西头的小二哥
这个作者很懒,什么都没留下…
展开
-
后序和中序建立二叉树或者先序和中序建立二叉树
代码实现#include #include #include typedef struct node{ char data;//节点数据元素 struct node *lchild;//指向左孩子 struct node *rchild;//指向右孩子}BiNode,*BTree;void GetPreOrder(char *last,char *mi原创 2014-11-22 12:29:48 · 1292 阅读 · 0 评论 -
二叉树的建立基本操作(链表方式)(一)
学习数据结构,一直对二叉树不了解,对指针的调用一知半解。这二天学二叉树,搞懂了一点点,先写出代码,以后再边学习边来改进。#include #include typedef char DataType;typedef struct node{ DataType data; struct node *lchild; struct node *rchild;原创 2014-11-02 10:31:11 · 1547 阅读 · 3 评论 -
树状数组
这几天一直学习树状数组,可是还是一知半解。 如果给定一个数组,要你求里面所有数的和,一般都会想到累加,但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当改掉数组中的某一个元素之后,仍然让你求数组中某段元素的和,就显得麻烦 了,所以我们就要用到树状数组,它到 时间复杂度为O(lgn),相比之下就快的多,。下面就说一下什么是树状数组:原创 2015-01-16 16:41:43 · 608 阅读 · 0 评论 -
红黑树
红黑树时间限制:3000 ms | 内存限制:65535 KB难度:3描述什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树。。。当然,这个是我说的。。。《算法导论》上可不是这么说的:如果一个二叉查找树满足下面的红黑性质,那么则为一个红黑树。1)每个节点或是红的,或者是黑的。2)每个叶子节点原创 2015-01-16 20:47:58 · 711 阅读 · 0 评论 -
小猴子下落
小猴子下落时间限制:3000 ms | 内存限制:65535 KB难度:3描述有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关原创 2014-12-13 10:33:35 · 572 阅读 · 0 评论 -
中缀式变后缀式
中缀式变后缀式时间限制:1000 ms | 内存限制:65535 KB难度:3描述人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。输入第一行输入一个整数n,共有n组测试数据(n每组测试数据只有一行,是原创 2014-12-11 19:36:58 · 874 阅读 · 0 评论 -
Tree
Tree时间限制:1000 ms | 内存限制:65535 KB难度:3描述Little Valentine liked playing with binary trees very much. Her favorite game was constructing randomly looking binary trees with capital lett原创 2015-01-14 21:36:05 · 761 阅读 · 0 评论 -
二叉树的基本操作及应用(三)
#include #include #include #include typedef char DataType;int depth=0;int h1=1;int nlayer=1;char ch2;typedef struct node{ DataType data;//节点数据元素 struct node *lchild;//指向左孩子 struct n原创 2014-12-21 17:18:40 · 937 阅读 · 0 评论 -
重建二叉树
重建二叉树时间限制:1000 ms | 内存限制:65535 KB难度:3描述题目很简单,给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!)。输入输入有多组数据(少于100组),以文件结尾结束。每组数据仅一行,包括两个字符串,中间用空格隔开,分别表示二叉树的后序和中序序列(字符串长度小于26,输入数据保证合法)。输出每组输出原创 2014-11-24 18:37:41 · 715 阅读 · 0 评论 -
二叉排序树的基本操作
#include#includetypedef struct node{/*定义二叉排序树的结构*/int key;struct node *lchild;struct node *rchild;}BSTnode, *BSTree;void InsertBST( BSTree *bst,int key){/*插入二叉排序树*/BSTree s;if(*原创 2014-11-22 13:46:56 · 967 阅读 · 0 评论 -
二叉树的基本操作(二)
这是对二叉树一的补充#include #include #define MaxSize 100#define MaxWidth 40int LeafCount=0;int Layer=1;typedef char ElemType;typedef struct tnode{ElemType data;struct tnode *lchild,*rchil原创 2014-11-11 17:00:51 · 725 阅读 · 0 评论