数据结构
水上诗人
一滴水只有放进大海里才永远不会干涸,一个人只有当他把自己和集体事业融合在一起的时候才能最有力量
展开
-
浅说二叉树修炼之如何成仙
详细说起二叉树,坐下来用笔画一下就总结为3种情况,但是都知道懒为人之本性,我就以精神力(修仙者必备技能)带着读者画一遍。 咱们先说按照先左后右的规则,走一棵二叉树有什么选择:1、往左;2、往右, 不难哈。 那咱们就往左一直走呗,走一个就把小结点放经脉里(经脉是一个栈容器)就走着走着,走成了这种情况。 那意思说我们现在精神力在这个方向已经到极限了,换个方向修炼呗:IF左为空,咱们就else。 (这里第一次走到这个实心节点,留意一下就好了) 那就扭头往右修炼【机智BUFF加持(:】 –吭哧~ 吭哧~原创 2020-09-21 23:48:41 · 328 阅读 · 0 评论 -
二叉树,递归实现
暑假的时候看了一次二叉树,看的晕晕乎乎的就放下了,现在重新看了一遍,理解了二叉树,觉得这篇博客不错,首先感谢原博主,在这里分享出来: 不过学习之前要了解的预备知识:树的概念;二叉树的存储结构;二叉树的遍历方法。。 二叉树的存储结构主要了解二叉链表结构,也就是一个数据域,两个指针域,(分别为指向左右孩子的指针),从下面程序1,二叉树的存储结构可以看出。 二叉树的转载 2017-11-18 16:38:50 · 197 阅读 · 0 评论 -
二叉树非递归遍历(前中后)
树(二叉树)的建立和遍历算法(二) 上篇树(二叉树)的建立和遍历算法(一)对二叉树的遍历是递归的方法,这里利用非递归的方法实现二叉树的遍历。首先要看懂上篇树(二叉树)的建立和遍历算法(一)。 关于二叉树的建立就不具体讲了。看上篇就OK了,那就直接见代码,非递归的方法实现对其的遍历。 //非递归方式前序遍历 /* 思路:将T入栈,遍历左子树;遍历完转载 2017-11-18 16:51:14 · 458 阅读 · 0 评论 -
二叉树用类实现前中后遍历
c++实现:#include using namespace std; struct BiTNode{ char data; struct BiTNode *lchild, *rchild;//左右孩子 }; BiTNode*T; void CreateBiTree(BiTNode* &T); void Inorder(BiTNode* &T); void PreOrder转载 2017-11-16 22:50:08 · 130 阅读 · 0 评论 -
最大(小)堆---数组的实现
最大堆是我在看浙大陈越老师的数据结构视频学到的,用的数组实现的 如何描述堆呢?用我自己的话说就是: 根是这颗树最大的值,每个 根节点都比 左右子节点的值大, 对左右子树仍然成立; 那么最小堆呢正好相反: 根是这颗树的最小的值, 每个 根节点都比左右子节点的值小, 同样对左右子树成立; 图能最直观的体现: 我们很容易看出来,堆的左右子树仍然是堆。 (图摘自CSDN)所...原创 2018-05-01 17:02:33 · 8420 阅读 · 7 评论 -
队列--数组AND链表的实现
一、数组实现:用数组模拟队列给定一个数组长度,为队列长度用下标做指定头尾位置,pri为头,bak为尾为了不浪费空间长度:pri=bak时队列为空,即: (bak+1)% MAXSIZE = pri 时: 队列为满,即: ...原创 2018-05-01 18:16:23 · 171 阅读 · 0 评论 -
一个函数实现二叉树非递归前中后序遍历(感谢浙大数据结构陈越、何钦铭老师)
在看慕课上面浙大数据结构时很巧合的想到的写法,感谢浙大陈越、何钦铭老师:一个二叉树的遍历分前中后序的遍历,这里前中后序是如何遍历的就不多说了。先给大家看这张图:按照读出来的顺序是前序遍历,正好是第一次经过该节点按照读出来的顺序是中序遍历,正好是第二次经过该节点按照读出来的顺序是后序遍历,正好是第三次经过该节点那么我们的出来一个结论:按照第1、2、3次经过该节点读出来的顺序就是二叉树的 前、中、后...原创 2018-05-01 20:40:15 · 542 阅读 · 0 评论