
数据结构与算法
白日梦想家
凡心所向,素履以往,生如逆旅,一苇以航。
展开
-
数据结构:哈希表
你受的苦,吃的亏,担的责,扛的罪,忍的痛,到最后都会变成光,照亮你的路。什么是哈希表?哈希表(Hash table,散列),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。举个栗子:一个班有30名学生,他们的学号是1-30的,我们用数组来存储这些学...原创 2020-02-19 18:39:43 · 571 阅读 · 0 评论 -
数据结构:树状结构之2-3树和红黑树
走得最慢的人,只要他不丧失目标,也比漫无目的地徘徊的人走得快。什么是2-3树?如下图所示:这就是一个2-3树。一颗2-3树应该是这样的:满足二叉树的基本性质节点可以存放一个或两个元素从上面图片可以看出,2-3已经不是一颗二叉树了,在树中有两种不同的节点,放一个元素的节点叫二节点,也就是说这个节点有两个孩子,而放两个元素的节点叫做三节点,他有三个孩子。正是因为每个节点有2个或...原创 2020-02-18 16:31:20 · 496 阅读 · 0 评论 -
数据结构:树形结构之平衡二叉树(AVL树)
人生注定负重登山,攀高峰,陷低谷,处逆境,一波三折是人生之必然,一切的坎坷只是暂时的,找到解决问题的切入点,一笑而过,坎坷会使我们更成熟,更完美,更坚强地撑起自己的一片心灵天空。什么是平衡二叉树(AVL树)...原创 2020-02-16 14:55:56 · 662 阅读 · 0 评论 -
数据结构:树形结构之堆
欲望以提升热忱,毅力以磨平高山。什么是堆?堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可被看做一棵树的数组对象。这里介绍的是最为常见的二叉堆。二叉堆(Binary Heap)是一种特殊的堆,二叉堆是完全二元树并且总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大...原创 2020-02-12 23:36:45 · 608 阅读 · 0 评论 -
数据结构:树形结构之树及二叉树
人生就是一场修行,修的是自己的心。修行,就是扩大自己的心量。心量越大,自己的舞台就越大,能容的东西就越多。什么是树形结构?树形结构是元素之间具有分支,且具有层次关系的结构, 其分支、分展的特征类似于自然界中的树木。树的相关概念树的定义树是 N (N >= 0 )个结点的有限集合,N = 0 时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足: 1) 有且仅有一...原创 2020-01-19 11:48:40 · 635 阅读 · 0 评论 -
数据结构:线性结构之队列
世上有两种最耀眼的光芒,一种是太阳,一种是我们努力的模样。什么是队列?在日常生活中队列很常见,像我们经常排队购物或购票,排队是体现了“先来先服务”的原则。 队列在计算机系统中的应用也非常广 泛。例如: 操作系统中的作业排队。在多道程序运行的计算机系统中,可以同时有多个作业运行,它们的运算结果都需要通过通道输出,若通道尚未完成输出,则后来的作业应排队等待,每当通道完成输出时,则从队列的队头退出...原创 2020-01-17 18:15:25 · 949 阅读 · 0 评论 -
数据结构:线性结构之栈
这世间,唯有青春和梦想不可辜负。花开正好,微风不燥,扬帆起航,追逐梦想。从数据结构上看,栈和队列也是线性表,不过是两种特殊的线性表。栈只允许在的一端进行插人或删除操作,而队列只允许在表的一端进行插人操作、而在另一端进行删除操作。因而,栈和队列也可以被称作为操作受限的线性表。从数据类型角度讲,栈和队列是与线性表不同的重要抽象数据类型,广泛地应用于各类软件系统中。什么是栈?栈(stack)是种...原创 2020-01-16 11:18:26 · 604 阅读 · 0 评论 -
数据结构:线性结构之线性表
就算没有天分,只要你愿意每天花一点时间,做同样一件事情,不知不觉间,你就会走得很远。什么是线性表?线性表是n(n>= 0)个元素的有限序列。在表中,元素之间存在这线性的逻辑关系:(1)表中有且仅有一个开始结点;(2)有且仅有一个终端结点;(3)除开始结点外,表中的每一个结点均只有一个前驱结点;(4)除终端结点外,表中的每一个结点均只有一个后继结点;根据他们之间的关系可以排成一...原创 2020-01-15 15:35:35 · 642 阅读 · 0 评论