数据结构学习心得
自己在学习数据结构时的一些心得体会,我希望把自己对算法的理解和实现的C++代码分享给大家,让我们一同进步。
中二小苇
机器学习,NLP
展开
-
数据结构学习心得——二叉树的三种遍历算法
二叉树主要的遍历方式有四种,先序遍历,中序遍历,后序遍历和层次遍历(层次遍历放到下一篇博客单独讲)。 1、先序遍历 a.访问根结点 b.先序遍历左子树 c.后序遍历右子树2、中序遍历 a.先序遍历左子树 b.访问根结点 c.后序遍历右子树3、后序遍历 a.先序遍历左子树 b.后序遍历右子树 c.访问根结点看上很简单,代码实现也很简单,但是很多算法都是基于这几种遍历而衍生出来的,所原创 2017-09-29 12:21:55 · 4567 阅读 · 0 评论 -
数据结构学习心得——顺序队和链队
队列的定义和栈相反队列是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。在队列中,允许插入的一端叫做队尾,允许删除的一端叫做对头。顺序队和链队顺序队列是队列的顺序存储结构,顺序队列实际上是运算受限的顺序表。和顺序表一样,顺序队列用一个向量空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,设置两个指针fr原创 2017-08-29 20:33:48 · 8971 阅读 · 0 评论 -
数据结构学习心得——顺序栈和链栈
栈的定义栈是限定尽在表尾进行插入或者删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶,相应地,表头端称为栈底。不含元素的空表称为空栈。栈又称为后进先出的线性表。 和线性表类似,栈也有两种存储表示方法。 顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top只是栈顶元素在顺序栈中的位置。这里以top=-1表示空栈。 链式栈可以通原创 2017-08-23 17:47:10 · 17701 阅读 · 1 评论 -
数据结构学习心得——双链表和循环链表
双链表若要寻查结点的前驱,则需要从表头指针出发。为了克服单链表这种单向性的缺点,可以利用双链表。顾名思义,在双链表的结点中有两个指针域,其一指向直接后继,另一指向直接前驱。 循环链表循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。由此,从表中任一结点出发均可找到表中其他结点。 代码实现这里的代码只实现了创建部分的代码,其他的一些查找,删除,添原创 2017-08-22 17:25:48 · 1404 阅读 · 0 评论 -
数据结构学习心得——顺序表
一、线性表的定义线性表是具有相同特性数据元素的一个有限序列。该序列中所含元素的个数叫做线性表的长度,用n(n>0)表示。二、线性表的存储结构线性表的存储结构有顺序存储和链式存储两种。前者称为顺序表,后者称为链表(链表见下篇博客,这里介绍下顺序表)。顺序表 顺序表就是把线性表中的所有元素按照其逻辑顺序,一次存储到从指定的春初位置开始的一块连续的存储空间中。顺序表的操作 顺序表的基本操作有初始化原创 2017-08-16 23:07:06 · 12358 阅读 · 0 评论 -
数据结构学习心得——复习数据结构的原因
博主一个本科软件专业大四狗。之前一直学的是iOS开发,也写了一些iOS开发的博客,其中写的都是我做项目的时候遇到的,感觉比较重要的东西。自从博主决定考研了以后,就很长一段时间没有再接触iOS,博客也很久没有写过博文了,最近自己一直在复习考研数据结构,想把自己复习的东西总结起来写成博客,供大家参考。数据结构的内容还是比较多的,有一些算法也挺复杂的,不论是考研还是找工作,数据结构都是重中之重,我希望把自原创 2017-08-17 17:35:37 · 832 阅读 · 0 评论 -
数据结构学习心得——单链表
一、线性表的存储结构顺序表(顺序表操作见上一篇博客)链表 在链表存储中,每个结点不仅包含所有的元素的信息,还包含元素之间逻辑关系的信息,如单链表中前驱结点包含后继结点的地址信息,这样就可以通过前驱结点中的地址信息找到后继结点的位置。 (2)单列表 在每个节点中除了包含数据域外,还包含一个指针域,用以指向其后继结点。下图所示为带头结点的单链表。 a.带头结点的单链表中,头指针head指原创 2017-08-17 18:36:14 · 16602 阅读 · 0 评论