数据结构与算法大纲

一、数据结构基础

1、数据结构是什么

数据结构是一门学习怎样存储数据的学科

2、逻辑结构和物理结构的区别

逻辑结构描述的是数据之间的关系;

物理结构描述的是数据在内存中真实的存储状态

3、数据结构和算法的联系和区别

数据结构是研究存储数据的方法;

算法是研究解决问题的方法

4、时间复杂度和空间复杂度

a、时间复杂度

预估算法执行的时间

b、空间复杂度

预估算法执行所占的内存

5、学习数据结构需要具备的基础

学习数报结构,必须熱练学握一门编程语言

6、学习数据结构的好处

a、提升程序员的逻辑思维;

b、能力高低的分水岭;

c、程序性能好坏的评判标准

二、线性表

1、线性表(线性存储结构)是什么

用来存储逻辑关系为“一对一”的数据

2、顺序表

a、顺序表是什么

b、顺序表的基本操作(增删改查)

c、顺序表和数组的区别

3、(动态)链表

a、链表是什么

b、单链表

c、双向链表

d、循环链表

e、双向循环链表

4、静态链表

a、静态链表是什么

b、静态链表的基本操作

c、静态链表和动态链表的区别

5、热门问题

a、删除链表倒数第N个节点

b、单链表的反转

c、判断两个链表是否相交

d、判断链表中是否有环

三、栈和队列

1、栈

a、栈是什么

用来存储逻辑关系为“一对一”的数据,存取数据必须遵循“先进后出”的原则

b、顺序栈

c、链式栈

d、和栈有关的热门问题

2、队列

a、队列是什么

用来存储逻辑关系为“一对一”的数据,存取数据必须遵循“先进先出”的原则

b、顺序队列

c、循环队列(顺序队列的变种)

d、链式队列

四、串

1、串是什么

专门用来存储多个逻辑关系为“一对一”的字符

2、顺序存储

a、定长顺序存储

b、堆分配存储

3、链式存储

a、块链存储

4、和串相关的算法

a、BF算法(普通模式匹配算法)

b、kmp算法(快速匹配模式算法)

五、数组和广义表

1、数组、广义表分别是什么

都可以用来存储多份逻辑关系为“一对一”的数据

2、数组

b、顺序存储

c、压缩存储

3、广义表

b、链式存储

c、长度和深度

d、广义表的复制

六、树

1、树存储结构是什么

a、专门存储逻辑关系为“一对多”的数据

2、普通树

a、顺序存储

b、链式存储

3、二叉树

a、二叉树是什么

b、普通存储

c、链式存储

d、线索二叉树

e、二叉树的遍历

4、哈夫曼树

a、赫夫曼树、最优树

b、哈夫曼编码

5、和树相关的热门问题

a、n个节点最多可以构建多少棵树

b、孩子兄弟表示法将森林转变成二叉树

c、回溯算法

七、图

1、图存储结构,数据结构中的图

a、专门存储逻辑关系为“多对多”的数据

2、图的基本知识

a、连通图

b、生成树

c、最小生成树

d、重连通图

e、最短路径

f、关键路径

3、图的存储

a、顺序存储

b、链式存储

4、图的遍历

a、深度优先搜索算法(DFS)

b、广度优先搜索算法(BFS)

5、生成树(森林)

a、深度优先生成树(森林)

b、广度优先生成树(森林)

6、找最小生成树

a、普利姆算法(Prim算法)

b、克鲁斯卡尔算法(Kruskal)

7、求最短路径

a、迪杰斯特拉算法(Dijkstra算法)

b、弗洛伊德算法(Floyd算法)

8、图相关的算法

a、拓补排序算法

八、查找表

1、是什么查找表

a、专门存储逻辑关系为“无关系”的数据

2、静态查找表

a、顺序查找

b、二分查找

c、分块查找

d、静态树表查找

3、动态查找表

a、二叉排序树

b、平衡二叉树(AVL树)

c、红黑树

d、B-树

e、B+树

f、键树

g、哈希表

九、排序算法

1、冒泡排序

2、选择排序

3、插入排序

4、希尔排序

5、快速排序

6、归并排序

7、堆排序

8、计数排序

9、桶排序

10、基数排序

十、算法设计技巧

1、分治法

2、动态规划

3、贪心算法

4、回溯算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值