
数据结构详解系列
该专栏详细介绍了数据结构的学习所得
__MrCool
飘飘何所似,天地一沙鸥
展开
-
数据结构——详解链表OJ
不知不觉都2019年了,新的一年,咱都得偿所愿<祈祷>。这篇文章算是对前面链表的复习吧。好久没写博客了。要找回状态。上面是不带头节点的不循环的单向的链表。后面的OJ是围绕着上面这个图进行的。我们先把链表定义在这儿。//C语言#pragma oncetypedef struct SListNode{ int data; ...原创 2019-01-12 00:17:59 · 796 阅读 · 0 评论 -
数据结构—算法效率
数据结构之前,先来了解两个概念——时间复杂度时间复杂度 由来:这里的时间复杂度不是程序运行的时间。评价一个算法的好坏,并不能通过程序运行的快慢来评估。因为程序的运行快慢还有很多因素,和计算机硬件有关,所以如果在不同的电脑上 ,运行的时间可能不一样 。那么这里的时间复杂度指啥,指的是算法中基本操作的执行次数。比如某一句基础语句执行了多少次。这样就可以很直观的评价一个算法的好坏了。...原创 2018-12-01 23:09:16 · 374 阅读 · 0 评论 -
数据结构—顺序表
先语:前面记录了怎么评判算法好坏的时间复杂度,空间复杂度。下面正式记录一个数据结构,顺序表。在说顺序表的时候,先来说说线性表。因为顺序表属于线性表。线性表通俗的说,就是一根线一样,一连串的。这是逻辑上的。物理存储上的并不是像数组一样一连串的内存空间啊。当然也有物理上是连续的 就是下面要说的顺序表,线性表(linear list) 概念 n个具有相同特性的数据元素的有...原创 2018-12-02 21:41:23 · 1157 阅读 · 0 评论 -
数据结构—链表
链表 概念 链表是逻辑上顺序存储的,但不是物理上连续存储的。为什么这么说。因为链表是一个一个结点组成的,结点是由数据和指针组成的。有了指针,存储起来就很灵活。 分类 1、无头结点单向不循环链表//C语言typedef struct SListNode //创建单向链表{ int data;//结点数据 struct SListN...原创 2018-12-16 22:56:10 · 222 阅读 · 0 评论 -
数据结构——栈和队列
概念 定义 栈的所有操作(增删)都必须在栈顶操作,而队列必须在队首删除,在队尾添加。所以如果你要对栈进行操作只需要在一个地方操作,那么栈就可以用顺序表操作,而队列操作完,整个队列的元素都需要移动,所以用链表。定义如下://C语言//这是一个动态栈,即容量满了就自动扩容。typedef struct Stack{ int *stack; ...原创 2019-01-13 14:41:25 · 426 阅读 · 0 评论 -
数据结构——栈和队列OJ
/*代码里所用的函数接口都在上一篇博文。里面只进行说明。*/1、括号匹配;给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。函数接口:bool isValid(char* s)//C语言这...原创 2019-01-14 00:58:01 · 567 阅读 · 0 评论 -
数据结构——二叉树
前面说到线性的顺序表和链表。他们在逻辑上是线性的。而下面要说的是非线性数据结构的树。目录1、概念2、二叉树2.1概念2.2特殊的二叉树3、二叉树的存储结构3.1顺序存储3.2链式存储3.1.1顺序存储代表----堆3.2.1链式存储---普通二叉树 1概念 见上图;为什么要把树倒过来了?因为这里数据结构的树就是一颗倒过来的树。 下图便是数据结...原创 2019-02-19 23:34:53 · 863 阅读 · 0 评论 -
数据结构——排序(详细,通俗易懂)
目录排序的概念排序的分类插入排序选择排序交换排序归并排序 排序的概念 排序就是一系列数据,按照某个关键字(例如:销量,价格),进行递增或者递减的顺序排列起来. 排序的分类 插入排序 ——直接插入排序把待排序的数据插入到已经排好序的数据中,直到所有的数据插入完成,即就是直接插入排序。(如流行于陕西一带的纸牌游戏,挖坑)一般待排序的区间...原创 2019-02-20 18:18:40 · 21238 阅读 · 0 评论