数据结构与算法
文章平均质量分 81
玲娜贝儿~
持续输出学习笔记~
展开
-
【C++】-- 哈希算法
如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的key之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。向该结构中插入元素和查找元素时:插入元素:将元素key存放到用hashFunc计算出的元素key的位置。查找元素:对元素的key进行计算,把用hashFunc计算的函数值当做元素的存储位置,在哈希结构中按此位置取元素比较,若key相等,则查找成功。原创 2022-09-20 17:09:58 · 5303 阅读 · 28 评论 -
【数据结构】排序-C语言版
各类排序算法思想是什么?如何实现?时间复杂度分别是多少?稳定吗?常见的排序算法有如下7种:插入排序插入排序基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。直接插入排序当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与 array[i-1],array[i-2],…的排序码顺序进行比较,...原创 2022-03-25 22:24:40 · 1708 阅读 · 6 评论 -
【数据结构】堆-C语言版
堆的性质:(1)堆中某个结点的值总是不大于或不小于其父结点的值;(2)堆总是一棵完全二叉树。原创 2022-03-03 23:07:41 · 1563 阅读 · 10 评论 -
【数据结构】二叉树-C语言版
二叉树的性质1. 若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有个结点.2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是.3. 对任何一二叉树, 如果度为0的叶结点个数为, 度为2的分支结点个数为,则有4. 若规定根节点的层数为1,具有n个结点的满二叉树的深度,(log以2为底,n+1为对数)。5. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有节点从0开始编号,则对于序号为i的结点有:(1)若i>0,i位置节点的双亲序号:(i-..原创 2022-03-03 23:06:06 · 3598 阅读 · 16 评论 -
【数据结构】队列-C语言版
队列:只允许在一端插入数据,在另一端删除数据的特殊线性表,队列具有先进先出(First In First Out)的性质原创 2022-02-09 20:20:09 · 1137 阅读 · 6 评论 -
【数据结构】栈-C语言版
栈栈是一种特殊的线性表,只允许在固定的一段进行插入和删除元素操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFOA(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作也叫出栈,出数据也在栈顶。......原创 2022-02-07 21:36:11 · 1200 阅读 · 3 评论 -
【数据结构】双向链表-C语言版
双向链表如何实现?头文件、源文件、测试文件3者一起完成原创 2022-01-29 23:45:23 · 1364 阅读 · 10 评论 -
【数据结构】链表-C语言版
顺序表缺点顺序表随机访问很方便,但是也会有不足啊:(1)挪动数据时间开销较大:头部/中间的插入删除,需要挪动后面的所有数据,时间复杂度为O(N)(2)增容有代价:增容需要重新申请空间,拷贝数据,释放旧空间,系统消耗不小(3)空间浪费:增容一般增至原来的2倍大空间,会有空间浪费,假如当前容量为100,满了以后增容到200,再继续插入了5个数据,后面没有插入数据了,这就浪费了95个空间。不存在扩容代价、不存在空间浪费、按需申请空间、头部或者中间插入数据而不需要挪动数据的链表可以解决以上问原创 2022-01-17 20:37:02 · 678 阅读 · 11 评论 -
【数据结构】顺序表-C语言版
线性表是n个具有相同特性的数据元素的有限序列,是一种实际中广泛使用的数据结构,常见的线性表有顺序表、链表、栈、队列、字符串。线性表在逻辑上是线性结构,即连续的一条直线,但在物理上不一定连续,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表及其特点数组缺陷:定义数组时必须制定数组大小,但是如果指定的大小 不能满足使用空间需求时,就会有问题。顺序表含义及特点:顺序表本质是数组,是用一段物理地址连续......原创 2022-01-09 21:03:50 · 1235 阅读 · 10 评论 -
【数据结构】时间复杂度-C语言版
时间复杂度衡量算法运行速度,空间复杂度衡量算法需要的额外空间。现在计算机存储容量大,已经不再需要关注空间复杂度。时间复杂度算的不是时间,是操作执行的次数。原创 2022-01-08 17:22:23 · 2355 阅读 · 0 评论