设数据结构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.非线性结构

想问一下大佬这道题的答案是循环链表吗?循环链表是线性的,但是这个答案的链表是非线性的?想问一下循环链表到底是怎么定义的,循环链表有根结点吗?

数据的逻辑结构有两个要素:一是数据元素的集合,通常记为 D ;二是 D 上的关系,它反映了 D 中各数据元素之间的前后件关系,通常记为 R 。即一个数据结构可以表示成 B= ( D,R )。其中 B 表示数据结构。为了反映 D 中各数据元素之间的前后件关系,一般用二元组来表示。例如,假设 a 与 b 是 D 中的两个数据,则二元组( a,b )表示 a 是 b 的前件, b 是 a 的后件。 如果一个非空的数据结构满足下列两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。 本题数据结构中没有根结点,因此它是非线性结构。故本题答案为 A 选项。

追问

想问一下循环链表和这个题目的图有什么不一样吗?循环链表的尾结点指针指向头结点,那循环链表为什么也叫线性结构?

追答

所谓循环链表就是尾结点与头结点相连的链表,整个链表形成一个环。而对于循环链表的插入与删除运算,基本上与单链表相同,只是在判断链表是否结束有所不同。下面的代码操作实现了两个循环单链表的合并。且核心代码不多,主要是分别找到循环单链表的尾结点再进行后续操作。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-09
循环链表的表头结点是根结点,表尾结点是叶子节点,表尾结点虽然有指针指向表头结点,但它俩不是前后件关系,而题中的(a,b)(f,a)是前后件的表达形式,这与指针不同,所以题中不符合只有一个根结点的条件,所以是非线性结构
第2个回答  2018-07-08
数据结构的逻辑结构只有线性结构和非线性结构两种,其中非线性结构,包括树形和图形。题中关系为圆角括号也就是无向的,多对多的关系,即图形。非线性结构。追问

好的谢谢,还有我还想问循环链表为什么是线性结构?线性结构不是说必须要有一个根结点吗?但是循环链表的尾结点指针指向头结点不就和题目的结构一样了吗?这点我想的不是很明白

追答

线性结构就是结点间一对一的关系。

追问

题目的图形不是一个圆圈吗?和循环链表的图有啥不一样吗?不太懂结点一一对应到底是啥意思?初学不太懂见谅......

题目的图形不是一个圆圈吗?和循环链表的图有啥不一样吗?不太懂结点一一对应到底是啥意思?初学不太懂见谅......

相似回答