提取符:<<,可用于输出各种值和指针
可以使几个不同类型的变量共用一段存储单元( √)共用体可以
若有char w;int x;float y;double z,则表达式w+x-y+z的数据类型为double(只要double参与了就都是double)
以下数据结构中,(A)是非线性数据类型结构
A树
B字符串
C队列
D栈
逻辑结构:线性(一对一)、树形和图形(一对多)
常考线性结构的:栈、字符串、队列、一维数组,非线性结构:树、图
DS=(D,R)其中,DS为数据结构,D为元素的集合,R是元素之间关系的集合。数据元素一样,数据结构不一定一样
集合中任何两个结点之间都没有逻辑关系。
一对一:
一对多:
被计算机加工的元素不是孤立的,他们彼此一般存在某种关系,通常把这种关系称之为(结构)
以下属于逻辑结构的是(C)
A顺序表 B散列表 C有序表 D单链表
解析:数据结构的逻辑结构(线性、树、图)独立于存储结构 (顺序、链式),排除AD;散列表是一种特殊的存储结构,也称哈希表,属于非线性结构。
算法的时间复杂度取决于:问题的规模和待处理数据的初态
与单链表相比,双链表的优点之一是(顺序访问相邻结点更加灵活)
将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为 O(m)
有:char x[]="abcd",char y[]={"a","b","c","d"},则数组x的长度(>)数组y的长度
解析:X是字符串,后面还有/0
上课练习(线性表)
长度为n的顺序存储结构线性表,删除第i个数据元素,需要向前移动(n-i)个数据元素;在第i个位置插入一个元素,需要依次向后移动(n-i+1)个数据元素。
在下列存储结构中,最适合作随机访问的是:A
A数组 B双向链表 C单向链表 D循环链表
解析:线性表适合作随机访问,这道题只有数组是
带表头附加结点的单链表head为空的判断条件为(head->next=null)
以下关于递归调用的说法正确的是( )。
A.函数间接调用自己不是递归
B.递归调用可以用队列实现
C.递归调用可以用栈实现
D.函数直接调用自己是递归
顺序线性表的优点:空间利用率高,可用作随机存取;缺点是:插入和删除需移动大量元素
叶子结点个数=度为2的结点个数+1
循环队列,队空条件:front==rear,队满条件:(front+1)%n==rear
若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( B )
A.1和5
B.2和4
C.4和2
D.5和1
解析:队列中的元素只能从一端(队尾)添加,而只能从另一端(队首)删除。
对于一棵具有n个结点、度为4的树来说,树的高度最多是n-3
度为4、高度为h的树:至少有h+3个结点
图的深度优先遍历通常用堆栈实现,广度优先遍历通常用队列实现。
排序方法中,直接插入排序、冒泡排序、归并排序是稳定的。
对于n个数的简单选择排序,最坏情况下需要交换元素的次数为(n-1)
对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率更高,其原因是:
- (I). 直接插入排序过程中元素之间的比较次数更少
- (II). 直接插入排序过程中所需要的辅助空间更少
- (III). 直接插入排序过程中元素的移动次数更少
A.仅 I
B.仅 III
C.仅 I、II
D.I、II 和 III
对N个不同的数据采用冒泡算法进行从大到小的排序,下面哪种情况下肯定交换元素次数最多?
A.从小到大排好的
B.从大到小排好的
C.元素无序
D.元素基本有序
对于7个数进行冒泡排序,需要进行的比较次数为=7*6/2=21
图的广度优先遍历类似于二叉树的(层次遍历)
n条有n个顶点的强连通图最多有n(n-1)条边,最少有n条边
G是一个非连通无向图,共有28条边,则该图至少有(9)个顶点
解析:根据无向图是具有n(n-1)/2条边的特点,可得8个顶点的连通无向图最多有8*7/2=28条边,再添加一个点构成非连通图无向图
任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序(不发生改变)
邻接矩阵的空间复杂度为O(n^ 2),与边的个数无关。
邻接表的空间复杂度为O(ne),与图中的结点个数和边的个数都有关
如果A和B都是二叉树的叶结点,那么下面判断中哪个是对的?
A.存在一种二叉树结构,其前序遍历结果是…A…B…,而中序遍历结果是…B…A…
B.存在一种二叉树结构,其中序遍历结果是…A…B…,而后序遍历结果是…B…A…
C.存在一种二叉树结构,其前序遍历结果是…A…B…,而后序遍历结果是…B…A…
D.以上三种都是错的
带头结点的单链表h
为空的判定条件是:h->next==null
在长度为n的()上,删除第一个元素,其算法的时间复杂度为O(n)。
A.只有表头指针的不带表头结点的循环单链表
B.只有表尾指针的不带表头结点的循环单链表
C.只有表尾指针的带表头结点的循环单链表
D.只有表头指针的带表头结点的循环单链表
在散列表中,所谓同义词就是具有相同散列地址的两个元素。
设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1,M2和M3。则与森林F对应的二叉树根结点的右子树上的结点个数是(M2+M3)
在下列查找的方法中,平均查找长度与结点个数无关的查找方法是:
A.顺序查找
B.二分法
C.利用哈希(散列)表
D.利用二叉搜索树
对包含N个元素的散列表进行查找,平均查找长度为:O(1)
哈希表的平均查找长度是(哈希表的装填因子)的函数。