数据结构部分考点整理

来源:互联网 发布:手机qq java 编辑:程序博客网 时间:2024/06/15 17:10

1.逻辑结构与物理结构

  • 逻辑结构:数据元素之间的逻辑关系称为数据的逻辑结构。例如集合结构,线性结构,树状结构和网络结构。(堆,栈似乎同属于线性结构)
  • 物理结构(存储结构):数据结构在计算机中的表示。例如顺序存储,链式存储,索引存储,散列存储。

2.顺序存储和链式存储的选择

  • 顺序存储和链式存储的选择要根据具体问题来判断。
  • 如果对数据的操作涉及较多的插入和删除,应选择链式存储结构。
  • 如果对数据的操作涉及较多的访问,应选择顺序存储结构。

3.在用数组表示的循环队列中判断队列是空是满的边界条件

  • 解决方法1:在数据结构中增设一个布尔变量来单独储存队列是空还是满。
  • 解决方法2:队列中的front和rear有一个不储存具体数据。例如front为空,front+1为第一个数据,rear代表最后一个数据。这样空的条件设定为front ==rear;,把满的条件设定为(rear+1)%maxSize==front;。这样就很好的区别了空与满。

4.拓扑排序算法复杂度

  • 对于一个n个节点,e条边的图,算法复杂度为O(n+e)

5.完全二叉树的节点公式

  • 对于一个完全二叉树,如果对节点从1开始计数,如果一个节点编号为i,那么它的左孩子为2i,右孩子为2i+1。

6.树的高度计算公式

  • 如果节点数为n,那么树的高度为log2(n)向上取整再减1。
  • 需要指出的是在这个公式中,默认空树的高度为-1,在有些教材中空树的高度记为0。

7.哈夫曼树节点计算公式

  • 如果哈夫曼树中叶子节点数为n,那么总节点数为2n-1。

8.根据后序遍历和中序遍历结果推测树的形状

  • 如果一棵树,其后序遍历为dabec,中序遍历结果为debac,求其前序遍历结果。
  • 首先根据后续遍历的性质,知道c为根节点,再由中序遍历的性质知道,deba都在c的左子树中,c的右子树为空。再看c的左子树,在c的左子树中,e又为其根节点,再看中序遍历,知道d在c的左子树的左子树中,ba在c的左子树的右子树中,以此类推,可以得到整棵树。
  • 因此前序遍历的结果为cedba。

9.编程问题:寻找两个节点的最近父节点

//寻找二叉树两个结点的最低共同父节点TreeNode *FindFirstCommonParentNode(TreeNode *pRoot, TreeNode *pNodeOne, TreeNode *pNodeTwo){    if (NULL == pRoot)    {        return NULL;    }    if (pRoot == pNodeOne || pRoot == pNodeTwo)    {        return pRoot;    }    TreeNode *pLeft = FindFirstCommonParentNode(pRoot->m_pLeft, pNodeOne, pNodeTwo);    TreeNode *pRight = FindFirstCommonParentNode(pRoot->m_pRight, pNodeOne, pNodeTwo);    if (NULL == pLeft)       //1、左子树没有找到任何一个结点,则第一个公共父节点必定在右子树,而且找到第一个结点就是最低共同父节点    {        return pRight;    }    else if (NULL == pRight) //2、右子树没有找到任何一个结点,则第一个公共父节点必定在左子树,而且找到第一个结点就是最低共同父节点    {        return pLeft;    }    else                     //3、分别在结点的左右子树找到,则此节点必为第一个公共父节点    {        return pRoot;    }}

来自编程之路

10.哈夫曼树

  • 叶子结点数是N时,中间节点数为N-1,总结点树为2*N-1
  • 问题:已知一个哈夫曼树,允许的最大高度为4。假定已有两个叶子节点被编码为01和10,那么还有最多几个叶子节点?
  • 解答:最多还有8个叶子节点。对于一棵任意的哈夫曼树,如果其高度为4,那么它的叶子节点数量最多为2的4次方,就是16个。但是我们已知两个叶子节点的编码为01和10,代表这两个叶子节点的高度只有2,因为哈夫曼树不存在一个编码是另一个编码的前缀,因此在这两个叶子节点之下没有子节点。所以比原来的结果少了(8-2)=6个节点,所以共有10个叶子节点,最多还能在找8个。

11.未完待续

原创粉丝点击