1、设数据结构 B=(D, R) ,其中D={ a, b, c, d, e, f }、 R={ (a, b ) , (b, c ) , (c, d ) , (d, e), (e, f), (f, a) },该数据结构为( )。
A、非线性结构 B、循环队列 C、循环链表 D、线性结构 答案:A; 图是非线性结构; 线性结构:一对一,除第一个与最后一个数据元素外,其他每个有且仅有一个直接前驱和直接后继; 数据的逻辑结构有两个要素:一是数据元素的集合,通常记为 D ;二是 D 上的关系,它反映了 D 中各数据元素之间的前后件关系,通常记为 R 。即一个数据结构可以表示成 B= ( D,R )。其中 B 表示数据结构。为了反映 D 中各数据元素之间的前后件关系,一般用二元组来表示。例如,假设 a 与 b 是 D 中的两个数据,则二元组( a,b )表示 a 是 b 的前件, b 是 a 的后件。 如果一个非空的数据结构满足下列两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。 本题数据结构中没有根结点,因此它是非线性结构. 2、解析XML时,需要校验节点是否闭合,如必须有与之对应,用()数据结构实现比较好 A、链表 B、树 C、队列 D、栈 答案:D;鉴于XML的标签是成对出现的,所以为了检验成对性,需要与后一个相比较,那也就是数据结构中所谓的:后进先出,也就是栈。 3.带头结点head的单向循环链表L为空的判断条件是( ) A、head==NULL B、head->next==NULL C、head->next==head D、head!=NULL 答案:C;循环链表带头结点,头结点不算链表内容,如果头结点的下指针指向它本身,那么很明显,这个循环链表没有内容,就是空了。 4.将长度为n的单链表链接在长度为m的单链表后面,其算法的时间复杂度釆用大O形式表示应该是( ) A、O(1) B、O(n) C、O(m) D、O(n+m) 答案:C;需要先遍历长度为m的单链表,找到链表尾部,然后用尾部指针指向长度为n单链表的头结点。 所以时间复杂度只与长度为m的单链表有关,时间复杂度为O(m)。5、当静态链表采用数组实现时,插入与删除操作仍需移动元素,这种说法() A、正确 B、错误 答案:B;在C语言中,静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标CUR。 优点:和动态链表一样,删除和插入元素时间复杂度低,只需改动游标,不需移动元素(因此本题错误) 不足:和数组一样,需要提前分配一块较大的空间;失去了顺序存储结构随机存取的特性。 6、从一个具有 n 个结点的单链表中查找其值等于 x 结点时,在查找成功的情况下,需平均比较( )个结点。 A、n B、n/2 C、(n-1)/2 D、(n+1)/2 答案:D;最少1次 最多n次 平均(n+1)/2次 标签:02,head,单链,结点,链表,习题,数据结构,结构 From: https://www.cnblogs.com/ljf-0804/p/17599078.html