数据结构与算法
文章平均质量分 89
s1314_JHC
一个乐观的悲观主义者。
展开
-
数据结构与算法学习之(一):基本概念介绍
在日常的开发中,代码效率是一个重要的指标。在近期的科研中由于测试量的庞大,为了缩短测试时间,需要提升效率,在科研之余,借助书籍和视频教程把数据结构这一重要知识重新梳理一遍,在提高自我的同时,也算是做一个教程,方便有需要的人学习,文字也会尽量避免枯燥乏味的概念定义,如有不足之处敬请指正,谢谢!配套的书籍可以参考知乎大神的推荐,https://www.zhihu.com/question/343905...原创 2017-12-06 21:14:22 · 2025 阅读 · 0 评论 -
数据结构与算法学习之(二):线性表(上)
线性表分为上下两篇来学习,(上)部分主要针对顺序存储结构与链式存储结构各自的概念、算法实现以及时间与空间复杂度的比较。线性表是最基本、最简单、也是最常用的一种数据结构。它是由0个或多个元素组成的有限序列。满足如下条件:元素有先后之分。第一个元素无前驱,最后一个元素无后继。其余元素都只有一个前驱和后继。数据之间一一对应。线性表是有限的。说完了基本概念,可以引出原创 2017-12-17 09:18:36 · 493 阅读 · 0 评论 -
数据结构与算法学习之(三):线性表(下)
线性表(上)中只介绍了链式存储的单链表。单链表有许多的局限性,本篇分析能改善这些局限性的操作。1.循环链表循环链表的操作很简单,只需要把单链表的最后一个结点的指针域指向表头结点即可,如下所示。下面用一个程序把循环链表的基本操作串起来,代码比较长,因此把代码上传到CSDN下载中,进行了详细注释,并在Win32环境下编译成功,需要的可以下载。接下来就解释原创 2017-12-17 10:16:13 · 326 阅读 · 0 评论 -
数据结构与算法学习之(四):栈与队列(上)
栈是一种运用广泛的特殊线性表,在网页的后退操作,Word等界面的撤销操作都用到了栈的结构 。其定义如下:栈是一个后进先出(Last In First Out, LIFO)的线性表,只要求在表尾进行删除和插入操作。并把表尾称作栈顶(top),对应高地址;表头称作栈底(bottom),对应低地址。栈的插入操作(push)叫做进栈,类似于压子弹入弹夹。栈的删除操作(pop),叫做出栈,类原创 2017-12-18 17:58:58 · 475 阅读 · 0 评论 -
数据结构与算法学习之(五):栈与队列(下)
队列(queue)是只允许在一端进行插入操作,另一端进行删除的线性表。与栈相反,队列是一种先进先出(First In First Out)的线性表。在实际中也经常运用到队列的概念,例如键盘的缓冲区,输入的字母“god”在输入缓冲区中也存储为“god”,而不是“dog”队列的实现上,我们更愿意用链式存储结构来实现。根据先进先出原则,对于顺序存储结构,添加元素在表尾进行操作,其时间复杂度为原创 2018-01-03 20:33:10 · 735 阅读 · 0 评论