随笔分类 -  数据结构与算法

摘要:```ts class Grapg { // 用于存储所有的顶点 verteces: T[] = []; // 用于存储所有的边 采用邻接表的形式 adjList: Map = new Map(); // 添加顶点 addVertex(v: T) { this.verteces.push(v); / 阅读全文
posted @ 2023-08-29 11:47 努力挣钱的小鑫 阅读(80) 评论(0) 推荐(0)
摘要:面试被问到了,太菜了,不会写,特来学习记录下。 辗转相除法 辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。 例如,求(319,377): ∵ 319÷377=0(余319) ∴(319,377)=(377,319); ∵ 377÷319=1(余58) ∴(377,319)=(31 阅读全文
posted @ 2021-07-06 09:57 努力挣钱的小鑫 阅读(275) 评论(0) 推荐(0)
摘要:###冒泡排序 比较所有相邻的两项,如果第一个比第二个大,则交换他们 最好O(n) 最坏O(n^2) 平均O(n^2) 稳定 function bubbleSort(array) { const length = array.length // 外层循环控制比较的轮数 for (let i = 0; 阅读全文
posted @ 2020-08-13 19:10 努力挣钱的小鑫 阅读(150) 评论(0) 推荐(0)
摘要:##一.什么是双向链表? 双向链表,又称为双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表——维基百科 参考文章 ##二.代码实现 <!-- * @Descri 阅读全文
posted @ 2020-06-03 11:15 努力挣钱的小鑫 阅读(240) 评论(0) 推荐(0)
摘要:参考资料 #一.什么是链表结构? ##1.1.简介 链表和数组一样, 可以用于存储一系列的元素, 但是链表和数组的实现机制完全不同,链表中的元素在内存不是连续的空间,链表的每个元素由一个存储元素本身(数据)的节点和**一个指向下一个元素的引用(指针或者链接)**组成。 通俗来说链表类似于火车: 有一 阅读全文
posted @ 2020-05-24 11:33 努力挣钱的小鑫 阅读(208) 评论(0) 推荐(0)
摘要:参考资料 #一.什么是队列结构? ##1.1.简介 队列(Queue),类似于栈结构,但又和栈结构不同 是一种运算受限的线性表,受限之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作 队列结构遵循先进先出(FIFO First In First Out),图解 阅读全文
posted @ 2020-05-22 14:52 努力挣钱的小鑫 阅读(329) 评论(0) 推荐(0)
摘要:参考资料 #一.什么是栈(stack)? ##1.1.简介 首先我们需要知道数组是一种线性结构,并且可以在数组的任意位置插入和删除数据,而栈(stack)是一种受限的线性结构。以上可能比较难以理解,什么是受限制的线性结构?让我们首先来了解下栈结构的特点吧,下面就是栈的图解: 总结栈的特点就是在放入数 阅读全文
posted @ 2020-05-22 00:43 努力挣钱的小鑫 阅读(215) 评论(0) 推荐(0)
摘要:1.什么是数据结构? 数据结构(英语:data structure)是计算机中存储、组织数据的方式——维基百科 个人理解数据结构并不是一种具体的数据,而是一种方式,就像生活中的图书馆中存放了大量的书籍,如果把每一本书看做是数据,那么如何将书籍放进去,又如何将书籍找到并取出来这个方式就是一种生活中的“ 阅读全文
posted @ 2020-05-20 22:47 努力挣钱的小鑫 阅读(229) 评论(0) 推荐(0)