《C++开发工程师岗位必备知识点二》

①图的相关理解

连通性:在一个无向图中,从每个定点到每个其他顶点都存在一条路径

强连通:具有连通性的有向图

弱连通:一个有向图不是强连通图,但它的基础图是连通的

完全图:每一对顶点间都存在一条的图

②最大堆、最小堆

在构造堆的时候,首先需要找到最后一个节点的父节点,从这个节点开始构造最大堆,直到该节点前面所有分支节点都处理完毕,这样最大堆就构造完毕了。最下堆类似。

《C++开发工程师岗位必备知识点二》_第1张图片

③判断有向图是否有回路

拓扑排序可以判断,因为拓扑排序必须是无环图

④删掉同时拥有父节点和子节点的那个节点,或者是同时拥有左右子节点的那个节点,使这棵树不连通

⑤判断队空的条件

队空时: front=rear

队满时: (rear+1)%maxsize=front

⑥虚函数理解

抽象类中至少存在一个纯虚函数;存在纯虚函数的类一定是抽象类。存在纯虚函数是成为抽象类的充要条件。抽象类之所以不能被实例化,是因为它里面是抽象方法,实例化对象调用其里面的方法没有意义,我们需要做的就是覆写掉里面的抽象方法。

⑦线性结构与非线性结构的认识

一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。双向链表结点具有两个指针域,属于线性结构。循环链表所有结点的指针域都为非空,属于线性结构。循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除。双向链表结点具有多个指针域。

⑧森林与树的理解

《C++开发工程师岗位必备知识点二》_第2张图片

⑨KMP算法理解

http://www.cnblogs.com/yjiyjige/p/3263858.html此链接有详细说明。

⑩最优算法下界问题

选择问题的复杂度下界,已经有证明,可参考算法导论或屈婉玲的算法设计与分析技术这本书。

对于选择问题,找最大问题的下界是:n-1

找第二大问题的下界是:n+logn-2

你可能感兴趣的:(C++开发工程师岗位必备知识点)