每年5月22日,是软考数据库考试时间,距现在还有158天,过完年时间就显示非常紧张了,一年一度的软考正在向我们逼近。说起来软考要考的知识还是挺多的,我会用一系列的文章来为大家介绍软考中的各个知识块,大家一起讨论学习,希望明年各位都能领到一个红本本,呵呵。
首先用一个图来看一下数据结构中各个知识点之间的关系。
其中树包括:
图包括:
1.线性表
顺序表与链表部分比较简单。也没多少概念,循环队列的地方注意一下,一般画个图分析一下即可。
2.树
树的部分概念比较多。一般对于基本概念掌握好就Ok。对于某些技巧性的结论,记不准也没关系。
例题:某完全二叉树总共又767个结点,问叶子结点又几个?
分析:完全二叉树除了最底下叶子结点那层,上面都是满二叉树,满二叉树每一层是个等比序列,第一层为1,公比为2.
1,2,4,...
等比数列的和是2**k-1所以求K,对K向下去整得到9,也就是说上9层是满二叉树。
2**9-1=511,511+256=767,所以还缺256个结点才能组合成为题中所描述的那颗二叉树,对于满二叉树来说,底层叶子上的结点是从左往右排列的,所以第十层上有256个叶子结点,是第九层上的左边128个结点生出来的,而第九层剩下128个结点没有生孩子结点,所以也是叶子结点,所以总共的叶子结点就是256+128=384
1,2,4,...
等比数列的和是2**k-1所以求K,对K向下去整得到9,也就是说上9层是满二叉树。
2**9-1=511,511+256=767,所以还缺256个结点才能组合成为题中所描述的那颗二叉树,对于满二叉树来说,底层叶子上的结点是从左往右排列的,所以第十层上有256个叶子结点,是第九层上的左边128个结点生出来的,而第九层剩下128个结点没有生孩子结点,所以也是叶子结点,所以总共的叶子结点就是256+128=384
3 查找二叉树(二叉排序树)
定义(递归条件):
1.查找树的左右子树各是一颗二叉排序树
2.若查找树的坐子树非空,则其左子树上的各结点值均小于根结点的值
3.若查找树的右子树非空,则其右子树上的各节点值均大于根结点的值
上图就是一个二叉排序树。
对这棵树进行中序遍历: 2,3,4,5,6,7,8得到的就是排序结果
其它问题请加我的微信:x7993794, 可加入我的软考数据库微信群一起讨论
有人说,程序=数据结构+算法,数据结构的重要性不言而喻,凡是重点也是难点,希望以上内容能给你学习数据机构带来帮助。(本文部分出自 “李骥平” 博客)