肥宅钓鱼网
当前位置: 首页 钓鱼百科

程序员数据结构心法(程序员必备数据结构)

时间:2023-06-13 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

数据结构和算法是每个程序员都应该掌握的技能。特意给大家总结了一份《数据结构和算法的知识大纲》,希望对大家有帮助。更多架构师之路干货文章,已在路上,稍后就到!

数据结构和算法是每个程序员都应该掌握的技能。

特意给大家总结了一份《数据结构和算法的知识大纲》,希望对大家有帮助。

一:内容概述

本知识大纲主要内容包含:

1:数组

有序和无序数组的操作、二分法查找、存放对象、大O表示法

2:栈

线形表、栈、栈的操作、栈的实例、后缀表达式(包括转换和计算)

3:队列

队列、队列的实现、循环队列、双端队列、优先级队列

4:链表

链表、单链表、双端链表、用链表实现栈和队列、有序链表、双向链表

5:递归算法

递归、阶乘、分治算法、斐波那契数列、汉诺塔、背包问题、归并排序

6:排序算法

冒泡、选择、插入法、希尔、快速、基数、对象排序

7:二叉树

二叉树概念和性质、二叉树的实现、哈夫曼编码、哈夫曼树、哈夫曼算法、使用哈夫曼算法来实现压缩和解压的功能

8:红黑树

概念和特征、红黑树的规则和修正、红黑树的旋转、红黑树的实现

9:2-3-4树

概念和规则、2-3-4树的实现、2-3-4树和红黑树的关系和转换规则

10:B树

概念和特性、B树的高度、B树的实现、B树的变形

11:堆

概念和特点、堆的实现、堆排序

12:哈希表

概念和优缺点、Hash函数的构建、冲突解决(开放地址法和链地址法)、Hash化字符串

13:图

概念和基本术语、深度和广度搜索、最小生成树、有向图的拓扑、有向图的连通、Warshall算法、带权图的最小生成树、普里姆算法、最短路径问题、迪杰斯特拉算法、弗洛伊德算法

二:Java数据结构和算法知识大纲

数组

数组是什么

对数组的插入、删除、查找操作

无序数组

重复放值

不重复放值

有序数组

二分法查找

存放对象

大O表示法

简单排序

冒泡排序

选择排序

插入法排序

对象排序

线性表

线性表概念

线性表和数组的关系

什么是栈

栈的基本操作

push:压栈或入栈操作

pop:弹栈或出栈操作

peek:查看栈顶数据,而不弹出数据,也就是不做出栈操作

栈的基本实现

栈的应用实例

字符串倒序

括号(小、中、大)匹配

计算算术表达式

后缀表达式

什么是后缀表达式,也称波兰逆序表达式

如何把中缀表达式转换成后缀表达式

计算后缀表达式求值

栈的效率

队列

什么是队列(Queue)

队列的基本操作

insert:在队尾插入数据

remove:从队头移走数据

peek:查看队头的数据

循环队列

队列的基本实现

队列的效率

双端队列

优先级队列

优先级队列就是数据项按照关键字排好顺序的队列

优先级队列的实现

优先级队列的效率

链表

什么是链表(Linked List)

链表和数组

链表的基本操作

向链表中插入数据

从链表中移走数据

查看链表中所有的数据

查找指定链结点

删除指定链结点

单链表

单链表的基本实现

单链表的效率

双端链表

双端链表是,不仅仅记录着开始结点,同时也记录着结束结点

双端链表的实现

使用链表来实现栈和队列

有序链表

有序链表就是链表中的数据是排好顺序的

有序链表的实现

有序链表的效率

使用有序链表来实现插入排序

双向链表

什么是双向链表

双向链表的实现

递归算法

什么是递归

递归示例:阶乘

理解递归

递归示例:斐波那契数列

汉诺塔(河内塔)问题

背包问题

归并排序

高级排序

希尔排序

快速排序

基数排序

二叉树

树的基本知识

二叉树的概念和理解

二叉树的性质

二叉搜索树

二叉搜索树是什么

二叉搜索树的查找、插入、遍历、查找最大最小值和删除操作

二叉搜索树操作的效率

用数组来表示树

哈夫曼(Huffman)编码

哈夫曼树

什么是哈夫曼树

哈夫曼树的构造方法——Huffman算法

哈夫曼压缩的编码部分的实现步骤

哈夫曼压缩的解码部分的实现步骤

红黑树

平衡与非平衡树

红黑树是什么以及特征

红黑树的规则

红黑树的修正手段

红黑树的旋转

红黑树的插入算法

红黑树的节点删除

红黑树的删除算法

删除步骤后的调整步骤

红黑树的效率

了解其它平衡树:AVL

2-3-4树

多叉树

2-3-4树是什么

2-3-4树的数据组织规则

2-3-4树的搜索算法

2-3-4树的插入算法

2-3-4树的节点删除

2-3-4树和红黑树

2-3-4树转换成红黑树的规则

2-3-4树的效率

B树

B树是什么

回忆磁盘存取数据的知识

B树的特性

B树的高度

B树的搜索算法

B树的插入算法

B树的删除算法

B 树

B 树是什么

B 树和B树的特性差异

B 树的优势

B 树的磁盘读写代价更低

B 树的查询效率更加稳定

B 树支持基于范围的查询

Hash表

Hash表是什么

Hash表的优缺点

什么是Hash化

Hash函数的基本过程

常用的构造Hash函数的方法

直接寻址法

数字分析法

平方取中法

折叠法

随机数法

除留余数法

Hash冲突

Hash冲突的解决

开放地址法

链地址法

设计好的Hash函数

Hash化字符串

Hash化的效率

堆是什么

堆的特点

堆的插入算法

堆的删除算法

堆的查找

堆的效率

堆排序

堆排序的基本思想

堆排序的效率

图(不带权)

图是什么

图的基本术语

在程序中表示图

图的搜索(遍历),算法并代码示例

深度优先

广度优先

最小生成树,算法并代码示例

有向图的拓扑排序,算法并代码示例

有向图的连通性,算法并代码示例

Warshall算法,算法并代码示例

带权图

什么是权

带权图的最小生成树

普里姆算法,代码示例

最短路径问题

迪杰斯特拉算法,代码示例

弗洛伊德算法,代码示例

稀疏图和稠密图

图的效率

可惜头条没法给大家发放资源,先就看看知识大纲吧!

如果你觉得本系列文章还不错,能够给你一些启发和思考的话,请关注、点赞、收藏加转发,让更多的朋友加入到我们的行列,谢谢啦!

更多架构师之路干货文章,已在路上,稍后就到!

    推荐阅读
  • 八年级数学上册知识点(八年级数学上册知识点汇总)

    整式的除法:整数的除法公式①同底数幂相除,底数不变,指数相减;由此可推断任何不等于0的数的0次幂都等于1;②单项式相除,把系数与同底数幂分别相除作为商的因式,对于只在被除式里含有的字母,则连同它的指数作为商的一个因式;③多项式除以单项式,先把这个多项式的每一项除以这个单项式,再把所得的商相加。

  • python编程平台有哪些(TIOBE8月编程语言排行榜)

    最近,8月最新TIOBE编程语言排行榜重磅发布!Python再次问鼎,相比上个月增加了2%,市场份额占有率达到15.42,创下了历史新高。相较于其他语言,Python入门难度低,功能强大,在很多领域都有广泛应用,比如:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。Go语言下降了3个名次,从12位跌落到本月的15位,经历一段时间火热之后,基本快要回归平静。

  • 幼升小机制(找寻幼升小衔接密码)

    零起点教学既是对教育教学规律的尊重,也是对儿童身心发展规律的尊重。如果有这些能力打底,暂时知识上的落后会很快跟上,根本不会成为影响孩子学习成长的“坎儿”。此外,还有贯穿一至二年级两整年的巩固学习时间。让“零起点”的孩子更好地适应小学节奏,这需要小学、幼儿园的双向助力、课程与教学的双向发力。家长应重点关注儿童学习态度和学习行为倾向的培养。帮助儿童理解计划的重要性,为儿童做出善于计划的榜样。

  • 北京代表团申请出战(非凡十年北京代表团交卷)

    2021年,北京中心城区慢行交通出行比例达47.8%,创近10年来新高。近年来,北京出行环境大变样,自行车正回归城市文明出行。2019年5月,北京建成全国第一条自行车通勤专用路,成为网红打卡地。疫情防控期间,北京公交为复工复产开通定制公交服务。到2020年年底,北京市公交专用道总长度达到了1005车道公里,基本覆盖了大客流走廊,公交车辆平均运行速度提升至每小时25公里。2018年,北京荣获“国家公交都市建设示范城市”称号。

  • 桃花运是什么意思(桃花运的由来是什么)

    开门走出来一位大姑娘,布衣淡妆清新脱俗,一下就把崔户就给迷倒了!隔天崔户又过来堵门,这次屋子出现了一个老者,这老头看见崔户拿起扫把就打,你这个坏小子害死我女儿。两人一打一躲间得知,绛娘去年见面后便日夜牵肠挂肚,自此小病不断反反复复,请大夫来看只说思念过度。足足一年绛娘本已绝望,前几日去远亲家中小住,回来后看见门口题诗,绛娘急火攻心一病不起,现在已然奄奄一息。崔护跑进后堂,推开门一看“绛娘”,诶!

  • 越减越重怎么让体重下去(你的体重达标了吗)

    再者受到明星的影响,电视网络上的明星都是苗条身材,超高颜值,她们成为了广大女性最想成为的对象。并且很多明星因为长期营养不良而落下病根。根据国际标准,通常采用体质指数BMI来判定一个人的体重是否健康。BMI的计算方法是用体重除以身高的平方。在我国,成年人的正常BMI应该是在18.5-23.9之间。若BMI小于18.5那就是体重不足,应该增肥,大于23.9那就是超重,应该减肥。

  • 甩组词(汉字甩组词)

    以下内容大家不妨参考一二希望能帮到您!甩组词甩车shuǎichē使列车与机车分离或分离部分车厢。甩开膀子shuǎikāibǎngzi形容全力而为的样子。甩卖shuǎimài商店减价大量出售货物。甩手shuǎishǒu前后甩动,也比喻扔下不管。甩手顿脚shuǎishǒu-dùnjiǎo形容急得无可奈何的样子。

  • 辽宁辽阳总工会(辽阳市总工会面向全社会征集辽宁工人运动展览馆)

    辽宁辽阳总工会辽阳是历史文化名城、重要的工业城市,拥有丰厚的精神文化遗产,其中劳动精神、劳模文化独树一帜。不同时期劳模和五一劳动奖章获得者的作业工具、生活用具、服饰标志、证件、证书、奖章原件等实物或照片等资料。个人、单位、部门所持有的资料,以捐赠形式为主,经鉴定有展出及馆藏价值的,辽阳市总工会将与捐赠者签订捐赠协议。以荣获国家、省、市荣誉称号为脉络,展示不同级别劳模、工匠的精神特质和风采。

  • vga接口接线图(VGA连接线接口定义及引线焊接教程)

    最近做的多媒体功能插座,含有VGA、HDMI、网口、音频输入等接口,由于穿线时没有穿成品线缆,VGA和HDMI接头需要焊接,那么怎么焊接呢?注意:要把5和10针脚用短接线连在一起和VGA线屏蔽网同时焊在VGA金属头上。相信大家遇到过这种问题,有时候一台显示器要挂在墙上,但是VGA线没那么长,又不想去买,VGA线不够长时可用网线代替吗?这里我给大家详细介绍下,用网线做VGA的步骤。接下来就是焊接了,对照下面的连接图将网线和VGA头焊接好。

  • 古代剃发史(历史上女性的剃毛史)

    考古学家推测,很早的时候,古埃及人民就有了剃毛的习惯。古埃及人使用的先进的脱毛工具在古罗马时期,没有体毛绝对称得上是主流审美。古罗马时期人们剃毛常用的工具与古埃及人使用的类似,是用浮石、燧石制成的刀片以及特制的镊子。在古罗马,女性阴毛过长还可能会被拉到公共场合剃毛并示众,一旦超过15厘米,还有极大的可能被女巫处以极刑。