数据结构与算法
文章平均质量分 89
介绍主要的数据结构及算法
TauCeti0207
加油!!!
展开
-
C++STL详解(七)哈希封装模拟实现unordered_set&unordered_map
模拟实现unordered_set unordered_map原创 2022-09-17 23:01:38 · 747 阅读 · 0 评论 -
C++STL详解(七)哈希
详解哈希原创 2022-09-17 19:12:08 · 1388 阅读 · 0 评论 -
C++STL详解(六)unordered_set&unordered_map介绍
详解unordered_set&unordered_map原创 2022-09-17 18:52:35 · 1037 阅读 · 0 评论 -
C++STL详解(五)map&set的使用及其模拟实现
map&set的使用及其模拟实现原创 2022-09-03 10:56:51 · 731 阅读 · 2 评论 -
详解红黑树【C++实现】
详解红黑树原创 2022-08-31 23:23:49 · 678 阅读 · 1 评论 -
详解AVL树(二叉搜索平衡树)【C++实现】
详解AVL树原创 2022-08-30 19:53:41 · 516 阅读 · 0 评论 -
详解二叉搜索树【C++实现】
详解BST原创 2022-08-25 00:37:41 · 458 阅读 · 0 评论 -
从strstr到KMP【c语言】
文章目录strstr模拟实现strstr库函数源代码KMP算法求next数组:KMP实现next数组优化strstr字符串查找函数char *strstr( const char *string, const char *strCharSet );Find a substring. Return ValueEach of these functions returns a pointer to the first occurrence of strCharSet in string,原创 2022-01-20 16:59:07 · 671 阅读 · 1 评论 -
一文梳理二分查找算法【算法】【C语言】
文章目录0.前言1.故事分享:book:2.左闭右闭3.左闭右开4.错误示范1.找不到2.死循环5.总结0.前言二分思想十分容易理解,但是二分法边界处理问题大多数人都是记忆模板,忘记模板后处理边界就一团乱。之前我也凭借记忆书写,没彻底理清二分的边界关系,这次就此机会理清。记得某本书里有句经典发言:90%的程序员不能完全正确的写一个二分查找算法。1.故事分享📖有一天小明到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把小明拦下,要检查一下哪本书没有登记出借。小明正准备把每一本书在.原创 2022-03-05 23:04:06 · 623 阅读 · 4 评论 -
汉诺塔c语言实现及分析
目录起源c语言实现起源法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。一次原创 2021-10-18 11:57:51 · 333 阅读 · 3 评论 -
算法专项练习之哈希表
哈希表原创 2022-05-07 23:16:26 · 185 阅读 · 0 评论 -
练就基本功之栈与队列【数据结构】【C语言实现】
0.前言🐕hello 大家好啊,今天学习的是栈和队列。🐱🐱🐱话不多说,直接进入正题。1.栈🐱栈(Stack):是只允许在一端进行插入或删除的线性表。栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。遵循LIFO原则。(Last In First Out)注意先入后出是相对而言的。举个例子若进栈序列为 1,2,3,4 ,进栈过程中可以出栈,则下列不可能的一个出栈序列是(C)A 1,4,3,2B 2,3,4,1C 3,1,4,2D 3,4,2,1数据插入和删除的一端原创 2022-03-29 19:23:52 · 1611 阅读 · 12 评论 -
练就基本功之双向带头循环链表【数据结构】【C语言实现】
0.前言hello 大家好啊,好久不见。最近几天偷懒了,去补学校的课了,跟不上了/(ㄒoㄒ)/~~今天复习的是双向带头循环链表。👉戳我了解上一篇单链表👉戳我了解上上篇顺序表👉戳我了解复杂度🐱🐱🐱话不多说进入正题。1.双向带头循环链表🐺**乍一看,双向带头循环链表怎么这么复杂啊?**实现起来一定巨麻烦吧?非也非也。其结构虽然复杂,但是操作反而简单,这也正是其结构优势。头结点(也叫哨兵位节点)是多开辟的节点,方便链表的一系列操作。**注意:**有些书上也许会说让头结点存储链原创 2022-03-27 19:52:42 · 965 阅读 · 19 评论 -
图解无头单向非循环链表【数据结构】
0.前言🐑🌵🌵大家好啊,2天不见,甚是想念,呜呜网课要结束了,今天就要开始线下上课了,ε=(´ο`*)))唉,美好生活不复返了。话不多说,今天开始回顾链表中的无头单向非循环链表。🌵🌵本节重点:链表&顺序表对比单链表各个接口的实现1.链表 🐱链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。关于顺序表的不足:扩容有性能消耗且有可能存在空间浪费。扩容时,如果扩小了,大量插入数据时,频繁扩容,性能消耗较大;如果扩大原创 2022-03-14 08:36:12 · 1593 阅读 · 11 评论 -
练就基本内功之搞懂顺序表【数据结构】【C语言实现】
文章目录0.前言1.线性表逻辑结构存储结构2.顺序表顺序表与数组本质优点缺陷3.顺序表的实现静态顺序表动态顺序表SeqList.hTest.cSeqList.c初始化与销毁扩容尾插头插打印尾删头删查找中间插入/删除关于检查力度修改7.尾声0.前言🌵🌵hello 大家好啊,为了练就编程的基本内功,今天回顾的是线性表中的顺序表。回顾顺序表之前,问自己几个问题。物理结构与逻辑结构如何区分?顺序表与数组有何联系?话不多说,直接进入正文吧。1.线性表🐱 🐱原创 2022-03-11 16:12:12 · 1107 阅读 · 10 评论 -
你还不懂复杂度?快来看看这篇文章。【数据结构】
文章目录:cactus:0.前言:cactus::cake:1.什么是数据结构:cake::cake:2.什么是算法:cake:特征:重要性:cake:3.复杂度:cake:算法效率:cake:4.时间复杂度:cake:概念常见的时间复杂度量级对数阶O(logN)线性对数阶O(nlogN)平方阶O(n2)O(m*n)大O的渐进表示法练习strchr冒泡二分递归Fib**注意:**:cake:5.空间复杂度:cake:空间复杂度O(1)空间复杂度O(n)BubbleSortFibonaccirecursio.原创 2022-03-09 18:15:11 · 430 阅读 · 9 评论 -
5.排序算法 [C语言]
文章目录插入InsertSortShellSort对比测试选择SelectSortHeapSort对比测试交换BubbleSortQuickSortPartSort左右指针法挖坑法前后指针法优化三数取中优化小区间优化非递归对比测试归并MergeSortMergeSortNonR非比较排序CountSort绝对映射相对映射内排序外排序总结稳定性插入InsertSort//1.先写单趟//2.再写多趟//画图!!void InsertSort(int* a, int n){ assert(a);原创 2022-02-19 13:52:59 · 388 阅读 · 1 评论 -
4.二叉树【C语言】
文章目录1.树树的表示左孩子右兄弟表示法双亲表示法2.二叉树满二叉树&完全二叉树性质存储方式顺序存储链式存储遍历顺序TreeSizeTreeLeafSizeTreeKLevelSizeBinaryTreeDestroyDFSBFSBinaryTreeComplete3.堆堆排序的实现AdjustDown建堆算法HeapSort堆的实现Heap.hTest.cInit&DestroyPrintAdjustUpPushPopTopSizeEmpty练习[剑指 Offer 40. 最小的k个数](原创 2022-02-19 13:52:16 · 595 阅读 · 0 评论 -
3.栈和队列
文章目录栈栈的实现头文件初始化和销毁是否为空求大小取栈顶元素Test文件队列队列的实现头文件初始化&销毁Push&Pop取值判空求大小Test练习[20. 有效的括号](https://leetcode-cn.com/problems/valid-parentheses/)[225. 用队列实现栈](https://leetcode-cn.com/problems/implement-stack-using-queues/)[232. 用栈实现队列](https://leetcode-cn.原创 2022-02-19 13:51:13 · 528 阅读 · 0 评论 -
2.线性表[数据结构与算法]
文章目录线性表顺序表顺序表与数组本质优点缺陷解决办法SeqList.hTest.c实现初始化与销毁扩容尾插头插打印尾删头删查找中间插入/删除修改链表优点缺点单链表逻辑结构&物理结构链表组合实现定义创建节点打印查找尾删头删头插尾插pos后插入pos前插入pos后擦除双向链表头文件初始化创建节点尾插头插尾删头删查找插入擦除是否为空计算大小摧毁练习[27. 移除元素](https://leetcode-cn.com/problems/remove-element/)[26. 删除有序数组中的重复项](ht原创 2022-02-12 21:53:26 · 152 阅读 · 0 评论 -
1.复杂度[数据结构与算法]
文章目录什么是数据结构什么是算法重要性复杂度算法效率时间复杂度概念大O的渐进表示法练习[面试题 17.04. 消失的数字](https://leetcode-cn.com/problems/missing-number-lcci/)思路2思路3[136. 只出现一次的数字](https://leetcode-cn.com/problems/single-number/)[剑指 Offer 56 - I. 数组中数字出现的次数](https://leetcode-cn.com/problems/shu-zu-原创 2022-02-12 21:52:04 · 641 阅读 · 0 评论