1.前言
首先先回答一下上一篇文章的问题。
int function(int n) {
if(n <= 1){
return 1;
}else {
return n * function(n - 1);
}
}
求这个方法的时间复杂度。
这个其实比较简单,我们发现,实际上它就是通过递归的方式从n * (n-1)…*1。从n一直乘到1,就是n的阶乘。一共乘了n次,所以时间复杂度为:T(n) = O(n)
2.什么是线性表
线性表(List):由零个或多个数据元素组成的有限序列。
线性表特点:若元素存在多个,第一个元素无前驱元素,最后一个元素无后继元素,中间的元素均有且只有1个前驱和后继元素,也就是1对1,允许是空表。
像这样的,第一个元素无前驱元素(第一个位置是大雄,前面没人了),最后一个元素无后继元素(最后一个是胖虎,后面没人了),中间元素有且只有一个元素(中间元素就是哆啦猫和静香,哆啦猫的前继元素是大熊,后继元素是静香,前后都是只有1个人),那么这就是线性表。
3.两大物理存储结构
通过上一章我们知道了什么是线性表,讲述了它的逻辑结构,接下来我们具体谈一谈它的物理存储结构。物理存储有两种方式。
4.考研试题
1.公司组织架构是否是线性表?
答:不是的,一个公司有总经理,下面几个总监,每个总监管理几个经理,每个经理都有自己的下属和员工。不是1对1的关系,所以不是线性表。