- 博客(5)
- 收藏
- 关注
原创 说不完的树——一些题目
关于二叉树的经典题型,有很多,比如构造哈夫曼,求权值,树和森林的转化,二叉树的遍历,最小生成树等等。今天想跟大家分享一下二叉树遍历方面的问题和最小生成树。 首先说一下二叉树的遍历吧,有大家耳熟能详的三种遍历,即前序遍历,中序遍历,后序遍历等等,这里的序主要指的是根节点被访问的顺序。 先序遍历,即先访问根节点,在访问左子树,最后访问右子树。 代码实现如下 Type preorder(type *T) { visit(T); preorder(T->lchild); preorder(T-
2021-06-25 13:09:24
162
原创 说不完的树--哈夫曼树
哈夫曼树,又称最优二叉树,是一种带权路径长度最短的二叉树。带权路径长度就是指树中所有的叶结点的权值乘上其到根结点的路径长度。 哈夫曼树是如何构造的呢,就是在一个你需要加入树的节点的集合中,选取两个最小的元素组成一个树,此时,并将这个树加入到这个集合中,再从这个集合选出最小的两个节点组成一个树,并将这个树加入到集合中,循环往复,知道这个集合里只剩下一棵树为止。如图: 这里首先先选取了最小的两个元素1,2,合并为了一个树,之后将合并后生成的新的树根加入到了这个集合中,接下来就有两个选择了,可以选择.
2021-06-21 16:09:13
432
原创 说不完的树->平衡二叉树
我们知道二叉树因为其log2n的时间复杂度而一直被广泛运用,但如果添加不当,比如说一直只往一边添加元素,会令其不太像一颗树,甚至退化成线性结构,这时候,就需要用一些特殊的方法,让他重新变的平衡。旋转又分LL,RR,LR,RL等。 首先的问题,是如何判断一棵树是否平衡,这就需要引入平衡树这个概念了,平衡树和一般的二叉树并无区别,唯一的区别是,多了一个平衡因子bf: typedef struct node { int bf; elementtype data; stru...
2021-06-21 11:14:10
107
原创 c语言常见错误大全
一开始新手编程效率通常不高,不熟悉代码思路是一方面,不可忽视的一方面是因为总是在一些细节上出现错误,一个非常小的错误调试半个小时没发现都是常有的事。今天结合自己的学习经历,跟大家分享一下一些常见错误。 一.关于变量的声明 1.声明的变量一定要放在可执行代码的前面,不然会报错。 2.忘记,漏掉声明变量。不要写嗨了就不管声明了,特别是临时想到要加的变量。 3.使用Typedef命名结构体时,忘记最后的分号。 4.命名变量时,要仔细考虑你之后的代码,配以合适的类型。比如这个: ...
2021-06-18 23:05:43
2578
原创 十分钟搞定链表,看完不会你找我
第一篇博文,谈一谈链表吧。因为学的时候困于书上艰涩难懂的定义,所以想尽力用比较通俗的精炼的话语来解释链表。 先说说单链表,与其回答单链表是什么的问题不如回答链表像什么的问题来的更通俗易懂,有人会说链表像一列火车,我觉得其实不是很像,因为火车往往是显性的,而链表给我的感觉往往是隐藏在内存之中的。链表更想散落在世界各地的宝箱,每一个宝箱除了里面的宝藏外,还藏着一张藏宝图。用这张藏宝图才能找到下一个宝箱。而想要获得这一连串宝箱的任何一个,你都必须要先找到第一张藏宝图。 一.构造一...
2021-06-09 16:53:28
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人