今日主题:软件设计师

每日10题——知识点总结(3)_出队

【知识总结】

栈和队列都是操作受限的线性表:栈仅在表位插入和删除元素;队列仅在表头删除元素、在表尾插入元素。

入队时初始队列为空、出队后队列变为空要进行特殊处理。

入队操作和出队操作均与队列长度无关,因此其时间复杂度为O(1)。

队列是先进先出的线性表,栈是后进先出的线性表。一个线性序列经过队列结构后只能得到与原序列相同的元素序列,而经过一个栈结构后则可以得到多种元素序列。用两个栈可以模拟一个队列的入队和出队操作。


每日10题——知识点总结(3)_线性表_02

【知识总结】

哈希表(hashtable)通过一个已记录的关键字为自变量的函数(哈希函数)得到该记录的存储地址。所以在哈希表中进行查找操作时,需用同一哈希函数计算得到待查记录的存储地址,然后到相应的存储单元去获得有关信息再判定查找是否成功。用哈希表存储元素时,需要进行冲突(碰撞)处理,这个冲突指的是关键字不同的元素被映射到相同的存储位置。




每日10题——知识点总结(3)_删除元素_03

【知识总结】

n个顶点的有向完全图中,每个顶点都向其他n-1个顶点发出一条弧,因此总督有向边的数目为n(n-1)。


每日10题——知识点总结(3)_删除元素_04

【知识总结】

任何一颗二叉树的叶子结点在先序、中序、后序遍历中的相对次序时不发生改变的,因为根据三个遍历次序和特点:前序是根左右,中序是左根右、后序是左右根。因此相对次序发生变化的都是子树的根,也就是分支结点。


每日10题——知识点总结(3)_线性表_05

【知识总结】

若用顺序表存储,则最好的情况是删除最后一个元素,此时不用移动任何元素,直接删除,最差的情况是删除第一个元素,此时需要移动n-1个元素,所以平均状态时移动(n-1)/2。

若用链表存储,直接将需要删除元素的前趋势next指针指向后继元素即可,不需要移动元素,所以移动元素个数为0。


每日10题——知识点总结(3)_出队_06

【知识总结】

n-1每个节点都有且只有一个入度。除去根节点没有入度,所以一共是n-1。