八大数据结构

https://blog.csdn.net

https://blog.csdn.net/qq_41560183/article/details/82390337#commentBox

 

数组常见问题:

 

1、寻找数组中的第二小元素

 

2、找到数组中第一个不重复出现的整数

 

3、合并两个有序数组

 

4、重新排列数组中的正值和负值

 

 

 

 

 

撤销操作的解决思路:将最后的状态排列在先的顺序

 

栈的常见问题:

 

1、使用栈计算后缀表达式

 

2、对栈的元素进行排序

 

3、判断表达式是否括号平衡

 

 

 

队列的常见问题:

 

1、使用队列表示栈

 

2、对队列的前K个元素倒序

 

3、使用队列生成从1n的二进制数

 

 

 

 

 

链表一般用于实现文件系统、哈希表和邻接表

 

链表还包含一个头指针,它指向链表的第一个元素,但当链表为空时,它指向null或无具体内容

 

链表的常见问题:

 

1、反转链表

 

2、检测链表中的循环

 

3、返回链表倒数第N个节点

 

4、删除链表中的重复项

 

 

 

在程序语言中,图可以用两种形式表示:邻接矩阵和邻接表

 

常见图遍历算法:广度优先搜索和深度优先搜索

 

图的常见问题:

 

1、实现广度和深度优先搜索

 

2、检查图是否为树

 

3、计算图的边数

 

4、找到两个顶点之间的最短路径

 

 

 

 

 

树结构的常见问题:

 

1、求二叉树的高度

 

2、在二叉树中查找第K个最大值

 

3、查找与根节点距离K的节点

 

4、在二叉树中查找给定节点的祖先节点

 

 

 

字典树

 

前缀树,解决字符串相关问题。它能够提供快速检索,主要用于搜索字典中的单词,在搜索引擎中提供建议,甚至被用于IP的路由。

 

字典树的常见问题:

 

1、计算字典树中的总单词数

 

2、打印存储在字典树中的所有单词

 

3、使用字典树对数组中的元素进行排序

 

4、使用字典树从字典中形成单词

 

 

 

 

 

哈希表

 

  对象以键值对的形式存储,这些键值对的集合被称为“字典”

 

哈希表通常用数组实现

 

 

 

 散列数据结构的性能取决于以下三个因素:

 

哈希函数、哈希表的大小和碰撞处理方法

 

 

 

哈希结构的常见问题:

 

1、在数组中查找对称键值对

 

2、追踪遍历的完整路径

 

3、查找数组是否是另一个数组的子集

 

4、检查给定的数组是否不相交

 

 

 

 

/qq_41560183/article/details/82390337#commentBox

数组常见问题:

1、寻找数组中的第二小元素

2、找到数组中第一个不重复出现的整数

3、合并两个有序数组

4、重新排列数组中的正值和负值

 

 

撤销操作的解决思路:将最后的状态排列在先的顺序

栈的常见问题:

1、使用栈计算后缀表达式

2、对栈的元素进行排序

3、判断表达式是否括号平衡

 

队列的常见问题:

1、使用队列表示栈

2、对队列的前K个元素倒序

3、使用队列生成从1n的二进制数

 

 

链表一般用于实现文件系统、哈希表和邻接表

链表还包含一个头指针,它指向链表的第一个元素,但当链表为空时,它指向null或无具体内容

链表的常见问题:

1、反转链表

2、检测链表中的循环

3、返回链表倒数第N个节点

4、删除链表中的重复项

 

在程序语言中,图可以用两种形式表示:邻接矩阵和邻接表

常见图遍历算法:广度优先搜索和深度优先搜索

图的常见问题:

1、实现广度和深度优先搜索

2、检查图是否为树

3、计算图的边数

4、找到两个顶点之间的最短路径

 

 

树结构的常见问题:

1、求二叉树的高度

2、在二叉树中查找第K个最大值

3、查找与根节点距离K的节点

4、在二叉树中查找给定节点的祖先节点

 

字典树

前缀树,解决字符串相关问题。它能够提供快速检索,主要用于搜索字典中的单词,在搜索引擎中提供建议,甚至被用于IP的路由。

字典树的常见问题:

1、计算字典树中的总单词数

2、打印存储在字典树中的所有单词

3、使用字典树对数组中的元素进行排序

4、使用字典树从字典中形成单词

 

 

哈希表

  对象以键值对的形式存储,这些键值对的集合被称为“字典”

哈希表通常用数组实现

 

 散列数据结构的性能取决于以下三个因素:

哈希函数、哈希表的大小和碰撞处理方法

 

哈希结构的常见问题:

1、在数组中查找对称键值对

2、追踪遍历的完整路径

3、查找数组是否是另一个数组的子集

4、检查给定的数组是否不相交

 

 

原文地址:https://www.cnblogs.com/bravesunforever/p/10882563.html