数据结构基础-题目

提取符:<<,可用于输出各种值和指针

可以使几个不同类型的变量共用一段存储单元( √)共用体可以

若有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)

哈希表的平均查找长度是(哈希表的装填因子)的函数。

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值