数据结构
行走在路上的少年
一个在学习路上不断行走的少年
展开
-
算法基础定义
这是一篇随笔,主要是算法的一点概念等,会对代码的优化和书写有一定作用。算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。确定性:算法的每一步骤都是具有 确定含义,不会出现二义性。...原创 2019-01-18 14:19:36 · 214 阅读 · 0 评论 -
树的基础知识
树的定义:树的存储方式:二叉树的定义:二叉树的性质:二叉树的定义:二叉树的遍历和输入:原创 2019-01-26 17:57:16 · 573 阅读 · 1 评论 -
数据结构随笔
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的科学。数据:是描述客观事物的符号,是计算机中可以操作的对象 ,是能被计算机识别,并输入 给计算机处理的符号集合。符号:(1)可以输入到计算机中。 (2)能被计算机程序处理。数据元素:是组成数据的、、有一定意义的基本单位,在计算机中通常...原创 2019-01-16 17:19:01 · 151 阅读 · 0 评论 -
串的模式匹配和KMP算法
前言串的模式匹配,主要应用在查找方面,而KMP算法是串模式匹配中一种,时间复杂度比较小的,效率比较高的一种算法,它可以为查找节省大量时间,毕竟时间就是金钱吗!我们先说一下比较普通的匹配方法,就是比较暴力的破解方法。不如在s[]=“goodgoogle”,中找到为p[]=“google”,子串的位置。我们可以看下图:先从第一个字符开始匹配,匹配到第四个字符的时候不相等:然后要查找...原创 2019-01-22 17:53:59 · 318 阅读 · 0 评论 -
动态线性表基本操作
在此先普及一下线性表的定义:线性表:零个或多个数据元素的有限序列。静态线性表是用类似于数组方法来实现的,是顺序的存储结构,需要预先分配地址空间的大小。所以静态线性表的初始长度一般是固定的。动态线性表也是用类似于数组方法来实现的,是顺序的存储结构,它与静态线性表最大的不同在与,它不需要预先分配地址空间,而是在对它进行操作时用malloc开辟空间。它就像你妈吃饭的时候对你说:“你吃多少,舀多少,...原创 2019-01-23 17:04:44 · 953 阅读 · 0 评论 -
图的基础知识1
我们先来了解一下啥是图,图是一个什么样的东西:图:图(Graaph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。无向图:若顶点vi到vj之间的边没有方向,则称这条边为无向边(Edge),用无序偶对(vi,vj)来表示。如果图中任意两个顶点之间的边都是无向边,则称该图为无向图(Undirected grap...原创 2019-01-29 18:53:30 · 370 阅读 · 0 评论 -
排序算法详解<1>
排序算法是我们在学习计算机编程过程中最常见的算法之一,也是最重要的算法。它是我们在编程过程中用到的最多的算法了。经过许多的前辈的不断的更新,已经出现了很多的排序算法,而且效率不断地提高,时间复杂度从最早的O(n²)改进到现在的O(n㏒n),甚至在一定的特殊情况下,辅助一些外部工具时间复杂度甚至可以变为O(n),下面来说一下几种常见的排序算法,在学习和生活中用的比较普遍的:下面先写一下,输出函数,...原创 2019-05-14 18:58:37 · 194 阅读 · 0 评论 -
排序算法详解<2>
1原创 2019-05-15 13:11:07 · 174 阅读 · 0 评论 -
排序算法详解<3>
前面原创 2019-05-15 17:32:47 · 172 阅读 · 0 评论