数据结构
文章平均质量分 66
水亦心
这个作者很懒,什么都没留下…
展开
-
【数据结构周周练】011 非递归算法实现二叉树的遍历
一、前言从第七篇周周练博客开始就一直在围绕二叉树的创建和遍历在进行分享,因为这是很重要的一部分内容,二叉树怎么用顺序表创建,怎么用链式结构来创建,怎么用递归算法创建,不用递归算法怎么创建。顺序二叉树的遍历,二叉链表的递归遍历等等,这些都是最基础也最重要的东西之一。本次要给大家分享的是非递归遍历方法,先序和中序的非递归算法比较方便,后续遍历比较麻烦,可以通过孩子结点是否访问,来决定是否访问左...原创 2018-10-20 22:49:16 · 369 阅读 · 0 评论 -
【数据结构周周练】010 递归算法实现二叉树的创建与遍历
一、前言上两篇周周练博客讲了二叉树的创建与遍历,创建时,通过创建栈来存放结点,方便二叉树的创建,这种创建二叉树的方式采用了非递归算法,本次内容采用递归的方式来创建二叉树,大家可以通过对比代码量,感受一下递归的魅力。同时遍历过程也是通过递归算法。如果大家第一次看我的博客是这一篇,这里给大家链接,方便大家了解非递归二叉树遍历及三种遍历方式的理解方式。1.非递归二叉树创建:【数据结构周周练】...原创 2018-10-20 20:21:17 · 817 阅读 · 0 评论 -
【数据结构周周练】013 利用栈和非递归算法求二叉树的高
一、前言二叉树的高是树比较重要的一个概念,指的是树中结点的最大层数本次算法通过非递归算法来求得树的高度,借用栈来实现树中结点的存储。学英语真的很重要,所以文中的注释还有输出以后会尽量用英语写,文中出现的英语语法或者单词使用错误,还希望各位英语大神能不吝赐教。二、题目将下图用二叉树存入,并求树的高度。其中圆角矩形内为结点数据,旁边数字为结点编号,编号为0的结点为根节点,箭头指向的结点...原创 2018-10-22 23:28:21 · 1042 阅读 · 0 评论 -
【数据结构必备基本知识】递归与迭代的联系、区别与优缺点对比详解
在后续的数据结构操作中,可能我们经常会用到递归或者是迭代,这会大大降低我们的代码量,并且能够解决一些其他方法很难解决的问题。以上一篇二叉树的遍历为例,通过递归算法,只用几行就可以遍历整个二叉树,递归的作用可想而知。那么,什么是递归,什么是迭代,他们二者之间有什么联系,有什么区别,各自的优缺点是什么呢?接下来给大家详细讲解一下。一、递归( recursion)1、定义首先,递归是一种...原创 2018-10-19 23:10:09 · 9273 阅读 · 3 评论 -
【数据结构周周练】009 二叉树的先序、中序、后序遍历(递归算法实现)
一、前言上一篇周周练博客讲了二叉树的链式创建,通过创建栈来存放结点,方便二叉树的创建过程,同时呢,二叉树的创建过程就是二叉树的遍历过程,如果创建好一个二叉树之后,就无需再通过那么麻烦的算法,可以直接通过递归来实现,算法原理比较简单,实现也很简单。大家如果学过数据结构,相信大家对二叉树的三种遍历方式都有所了解,分别是:先序遍历,中序遍历以及后序遍历。详细的概念在此就不过多赘述,只教给大家一个...原创 2018-10-19 21:28:10 · 2526 阅读 · 0 评论 -
【数据结构周周练】006队列基本操作-顺序结构及链式结构实现
今天给大家带来的是队列的基本操作的算法实现,以及相关代码的执行结果,包括初始化、入队、出队、销毁队、清空队、求队长、遍历队等等。把自己写的代码分享给大家,实现方式不唯一,如果大家有更好的算法,欢迎大家一起交流讨论,也欢迎大家在下面评论。由于普通队列在实现时,采用顺序存储,会浪费掉大量的空间,所以一般在循环队列采用顺序存储,普通队列采用链式存储。一、顺序循环队列实现1、代码2、执行结...原创 2018-10-16 22:57:45 · 422 阅读 · 0 评论 -
【数据结构基础笔记】第一章绪论之算法及算法分析
目录一、简要1、涵盖内容2、学习要求3、参考书目二、重要笔记1、算法2、算法效率度量一、简要第一章一共四小节,只有第四节单独作为一个博客发表,不仅仅是这一节在我心中地位比较重要,这一节在考研,期末考试和以后的码农生涯都会有重要作用。我不能说我这一节总结的有多好,但我还是希望能拿出来与大家分享。1、涵盖内容1、算法的定义、算法的基本特性以及算法分析的基本概...原创 2018-07-28 16:54:05 · 1059 阅读 · 0 评论