数据结构及算法知识点与题目整理(答案慢更)

本篇博文将对数据结构及算法的常见的题目进行总结,适合作为工作面试、考研机试与复试、自我检验、期末考试等的一份参考资料,囊括的知识点可能不会很全面,题目和答案都会在日后慢慢更新。


栈和队列

  • 两个栈模拟一个队列
    – 思路:栈1为入队,栈顶表示队尾;栈2为出队,栈顶表示队首。
    入队直接入栈1;出队时,如果栈2不为空,则直接弹出栈首,如果栈2里面没有元素,则将栈1的元素依次弹出并压入栈2。入队时若栈1已满且栈2为空(栈2必须为空时才可以),则可以将栈1元素全部入栈2。

  • 两个队列模拟一个栈
    – 注意:用队列模仿栈和用栈模仿队列是不一样的!!!
    略一思考就会知道,用两个栈模仿队列有点负负得正的意思,但是用队列模仿栈的话,这种方法肯定就行不通。那么怎么办呢?请看 -> https://www.cnblogs.com/DHUtoBUAA/p/7389076.html

  • 堆和栈的区别
    – 堆是满足一定限制的树形结构(最大堆、最小堆)
    – 栈是元素有先进先出顺序的线性结构

  • 栈应用于括号匹配

  • 栈里找最小值 -> https://blog.csdn.net/qq_32623363/article/details/87894111



数组、矩阵和广义表


  • 给定一棵树的两个节点,求最近的公共祖先节点
  • 树的定义;二叉树;满二叉树;完全二叉树;二叉排序树;平衡二叉树;
  • 树转换为二叉树
  • 哈弗曼树与哈夫曼编码
  • 二叉树删除节点
  • 二叉排序树删除节点(涉及“排序”)
  • 二叉树任意两个节点间的最大距离
  • 树的前序中序后序
  • 给出先序、中序,如何构造二叉树
  • 森林转换为二叉树

  • 怎么判断一个图中是否存在环?
    – 无向图:一直删除度为1的节点并更新,如果剩下度为2的节点,则有环
    – 有向图:拓扑排序,能够拓扑排序的就没有环。

排序

  • 插入排序
    – 直接插入排序
    – 折半插入排序
    – 希尔排序(缩小增量排序)

  • 交换排序
    – 冒泡排序
    – 快速排序

  • 选择排序
    – 简单选择排序
    – 堆排序
    – 归并排序
    – 基数排序

  • 外部排序
    – 置换-选择排序
    – 最佳归并树
    – 败者树

  • 上述各种排序算法的实现、及复杂度(最好、最坏情况)、稳定性

  • 每轮排序都会确定一个最终位置:冒泡,快排,选择排序,堆排序

  • 1000个数里找出最小的100个(最小堆)

  • 二叉排序树删除节点

  • 二叉排序树有两个节点交换了位置,怎么找出来

  • 怎么把一颗二叉排序树变成双向链表

  • 链表排序


查找

  • 二叉搜索树怎么插入结点
  • 红黑树
  • B-树与B+树
  • 链表如何使用二分查找
  • 哈希表最坏情况下相当于什么?
    – 复杂度为哈希表长度N,相当于一个N个长度的线性表
  • treemap和hashmap(java的知识了)
  • 哈希算法的平均查找长度(ASL)
  • 无序表找到一个树的时间复杂度
  • 哈希查找的几种冲突及解决办法

算法题

  • 汉诺塔
  • 最大子串和(属于知识点:“串”)
  • 最长公共子序列(属于知识点:“串”)
  • 上楼梯(1步或2步)
  • 最长对称子串(属于知识点:“串”)
  • 合并有序链表 -> https://blog.csdn.net/qq_32623363/article/details/87885652
  • 最长无重复字符子串(属于知识点:“串”)
  • 螺旋矩阵(属于知识点:“数组、矩阵和广义表”)
  • 解释递归和递归的实现:递归包括两个部分:递归部分和终止条件
  • 有序数组中找三个数之和为x
  • 无序数组中只有一个出现一次的数,其余的都出现两次及以上,找出这个数
  • 判断链表有没有环,如果有环,则找出环的入口 -> https://blog.csdn.net/qq_32623363/article/details/87890240
  • 两个单链表判断是否相交 -> https://blog.csdn.net/qq_32623363/article/details/87885938
  • 最大矩阵和(属于知识点:“数组、矩阵和广义表”)
  • 最大字段和
  • 什么是深度优先、广度优先
  • 贪心算法举例
  • 怎么把一颗二叉排序树变成双向链表(属于知识点:“排序”)
  • BP算法(了解即可)
  • 链表排序(属于知识点:“排序”)
  • 三角形给坐标,求交点
  • n个不同字符的所有全排列
posted @ 2019-02-22 12:02  _吟游诗人  阅读(263)  评论(0编辑  收藏  举报