随笔分类 -  数据结构与算法

摘要:双向链表 上文中详解了单向链表, 本节主要针对双向链表的原理、优缺点以及各个操作进行讲解。 双向链表对于单项链表来说,它支持两个方向,每个结点不止有一个后继指针next指向后面的结点,而且还有一个前驱指针prev指向前面的结点,结合图来看看: 从图中可以看出,双向链表需要额外的两个空间来存储后继结点 阅读全文
posted @ 2019-08-17 12:05 郭小白 阅读(377) 评论(0) 推荐(0)
摘要:一、数组的概念 定义:数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 从概念中可以知道一下几点: 数组是线性表。 所谓的线性表就是数据排成一排,想一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。当然除了数组,链表、队列、栈等也是线性表结构 阅读全文
posted @ 2019-08-13 00:33 郭小白 阅读(2307) 评论(0) 推荐(0)
摘要:链表是一种用于存储数据集合的数据结构。链表有以下几个属性: 相邻元素之间通过指针进行连接 最后一个元素的后继指针值为NULL 在程序执行的过程中,链表的长度可以增加或缩小 链表的空间能够按需分配(直到系统内存耗尽) 没有内存空间的浪费(但是链表中的指针需要一些额外的内存开销) 一、链表的分类 链表大 阅读全文
posted @ 2019-08-10 15:43 郭小白 阅读(1635) 评论(0) 推荐(0)
摘要:一、思路 在进行冒泡排序(升序)时,需要将数组中的元素(len)两两进行比较,如果前面的元素大于后面的元素的话,则交换两个数,否则,比较下一个元素和它下一个元素的大小,依次执行,执行一次循环结束之后,可以找到当前数组中最大的一个元素,将其排到了最后面,然后问题规模变小,然后找出len-1个元素里的最 阅读全文
posted @ 2019-03-06 22:49 郭小白 阅读(227) 评论(0) 推荐(0)