![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
码农在途
『 码农在途 』公众号作者 ,在这里你会看见一个编程小白成长的历程。感谢你的关注 ,期待和你一起共同成长。
展开
-
什么是预排序遍历树算法(MPTT)
MPTT 是什么?MPTT(Modified Preorder Tree Taversal)预排序遍历树算法原创 2019-11-08 18:05:57 · 2749 阅读 · 0 评论 -
数组常见操作
数组常见操作动态数组动态数组:在声明时未确定其大小,有需要时再重新定义其大小。思路:1、在动态数组初始化时给其一个默认大小,当默认数组大小无法满足操作需要时,扩充数组大小。2、在扩充数组大小时,每次将数组扩充为原有的 2 倍大小,直到满足要求。注:realloc 重新定义数组大小时,若新分配内存大于原有内存,则数组数据不会丢失,若内存比原有内存小则丢失数据。int* dynami...原创 2019-02-23 18:00:18 · 344 阅读 · 0 评论 -
链表常见操作
链表常见类型每一种新数据结构的出现都是为了解决原有数据结构的不足。链表的出现正是为了补充数组只能连续存储的不足。这种离散存储的方式自然携带了动态存储的特性。单链表单链表 是链表中最为常见的链表形式,链表中只有一个指向下一结点的指针。链表中的最后一个结点通常指向 NULL,表示链表的结束。//Definition for singly-linked list. struct ListNod...原创 2019-03-02 17:37:49 · 564 阅读 · 0 评论 -
简单了解栈 2
栈的定义栈是一种操作受限的线性表。只能在一端进行读取、插入、删除操作。实际上就是对链表、数组两个基本的数据结构进行操作限制。特性表现:后进先出。目的:对数据的操作加以限制,防止暴露太多的接口,加强数据的封装性。栈的基本操作栈的常见操作可以分为以下几种:1、实现一个顺序栈、链式栈。实际是对数组、链表操作进行限制。2、入栈 。将新元素存入栈顶。3、出栈。将栈顶元素删除。4、返回栈顶元...原创 2019-03-09 19:50:18 · 121 阅读 · 0 评论 -
简单入门——队列
队列介绍队列(Queue)是计算机中常见的数据结构,是一种操作受限的线性表。队列遵循 FIFO (先进先出) 原则,队列元素的增加在队尾,队列元素的读、取在队首。可以通过数组、链表两种基本的数据结构来实现。在 操作系统 中常见的应用有:CPU 进程的调度、内存的分配、磁盘的管理。队列的基本操作有:1、入队。首先应检测队列中是否能插入元素,不能则不执行插入,能则在队尾插入一个元素。2、出队...原创 2019-03-17 15:47:02 · 2776 阅读 · 0 评论 -
简单了解哈希表
什么是哈希表哈希表 是 Hash Table 一词的中文翻译,算法书里通常称这种数据结构为「散列表」。之所以称之为 散列表 和这种数据结构的存储方式有关,没个按序进入的数据都有可能散列在不同的位置,这是与数组、链表等有序结构所不同的。哈希表的优点可以像数组一样通过下标随机访问。弥补了数组只能通过整数索引访问的缺陷。哈希表的缺点每次存取数据之前要通过散列函数计算对应的散列值,消耗了...原创 2019-03-24 17:20:28 · 511 阅读 · 0 评论 -
简单入门「堆」
简单入门「堆」文章内容来自于对王争老师《数据结构与算法之美》栏的学习整理。堆是一种特殊的完全二叉树。每一个节点都大于等于 / 小于等于它的子节点。入门要求:熟悉数组了解链表熟悉排序理解什么是二叉树排序的基础概念基本概念大顶堆,完全二叉树 中的每一个结点都大于等于它的子节点。小顶堆,完全二叉树 每一个结点都小于等于它的子节点。通常用数组来表示堆,方便堆中数据的读取。实...原创 2019-04-07 16:54:35 · 130 阅读 · 0 评论 -
字符串匹配基础入门
BF 暴力匹配法BF(Brute - Force) 暴力匹配算法,是字符串匹配算法中最基础,也是最常用的算法。BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF...原创 2019-04-21 15:31:32 · 153 阅读 · 0 评论 -
简单入门图论
数据结构中的图是什么?文章内容来自于对王争老师《数据结构与算法之美》栏的学习整理。图,通常用来表示复杂的关系,一对一、一对多或是多对多。根据根据图中数据的对应关系可分为:「无向图」,即 A 关联 B 时,B 同时关联 A。例:微信中当 A 是 B 好友时,B 一定也是 A 的好友(新版本中已支持双向删除好友)。这种关联是双向的。「有向图」,即 A 关联 B 时,B 未必关联 A。例:微博...原创 2019-04-14 20:55:13 · 265 阅读 · 0 评论