更多“5. 广义表((x,y),())的表尾是_______。 A.() B.(()) C.y D.(y)”相关的问题
算法5-5:有向无环图的拓扑排序【图】 Description 由某个集合上的一个偏序得到该集合上的一个全序,这个操作被称为拓扑排序。偏序和全序的定义分别如下: 若集合X上的关系R是自反的、反对称的和传递的,则称R是集合X上的偏序关系。 设R是集合X上的偏序,如果对每个x,y∈X必有xRy或yRx,则称R是集合X上的全序关系。 由偏序定义得到拓扑有序的操作便是拓扑排序。
拓扑排序的流程如下: 1. 在有向图中选一个没有前驱的顶点并且输出之; 2. 从图中删除该顶点和所有以它为尾的弧。 重复上述两步,直至全部顶点均已输出,或者当前图中不存在无前驱的顶点为止。后一种情况则说明有向图中存在环。 采用邻接表存储有向图,并通过栈来暂存所有入度为零的顶点,描述拓扑排序的算法
在本题中,读入一个有向图的邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法判断此图是否有回路,如果没有回路则输出拓扑有序的顶点序列。 Input 输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。
以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个整数,如果为1,则表示第i个顶点有指向第j个顶点的有向边,0表示没有i指向j的有向边。当i和j相等的时候,保证对应的整数为0。 Output 如果读入的有向图含有回路,请输出“ERROR”,不包括引号。 如果读入的有向图不含有回路,请按照题目描述中的算法依次输出图的拓扑有序序列,每个整数后输出一个空格。
请注意行尾输出换行。 Sample Input4 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0Sample Output3 0 1 2 HINT 在本题中,需要严格的按照题目描述中的算法进行拓扑排序,并在排序的过程中将顶点依次储存下来,直到最终能够判定有向图中不包含回路之后,才能够进行输出。
另外,为了避免重复检测入度为零的顶点,可以通过一个栈结构维护当前处理过程中入度为零的顶点。
广义表运算式HEAD(TAIL((a,b,c),(x,y,z)))的结果是:()。
设有广义表A,A=(((a,b),x),((a),(b)),(c,(d,(y)))),写出由A得到y的对广义表A的操作序列。
回归模型为[图],表明( )。A、X与Y相关系数r是负数B、X与Y...
回归模型为,表明( )。
A、X与Y相关系数r是负数
B、X与Y相关系数r是正数
D、无法判断X与Y相关系数r的符号
(1)求点A的轨迹H的方程;
(2)过轨迹H的右焦点作直线交H于E、F,在y轴上存在点Q(0,q),使得|
|?=||,求q的取值范围.
已知x、y分别为a、b、c中的最大值和最小值,下面表达式能求出a、b、c中中间值的是( )
共回答了21个问题采纳率:95.2%
现取表头得到:((a,b,c),(c,d,e)),再去表尾得到:(c,d,e),再取表尾得到e
版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。
先科普一下广义表Head和Tail的作用
对于 非空广义表 来说,它的表头(即Head)既可能是单元素又可能是广义表。
但其表尾(即Tail)一定是一个广义表,也就是说,广义表利用Tail提取后也一定还是一个广义表。这么说有点像废话,其实不然,这里面就隐藏着一个初学者很容易踩到的陷阱。
但 Tail(((a,b),(c,d))) 的答案是否是(c,d)呢,答案是否定的。
它的答案是 ((c,d))。这就是开头为什么要强调广义表利用Tail提取后也一定还是一个广义表的原因。因为如果广义表中除去表头部分后的部分仍是个广义表的话,就容易让我们混淆,以为答案直接是后部分,而忽略了给它多加一对括号。