免费智能真题库 > 历年试卷 > 程序员 > 2014年下半年 程序员 上午试卷 综合知识
  第42题      
  知识点:   矩阵   深度优先遍历
  关键词:   遍历   邻接矩阵   深度优先        章/节:   常用数据结构       

 
对于下图,从顶点1进行深度优先遍历时,不可能得到的遍历序列是(42);若将该图用邻接矩阵存储,则矩阵中的非0元素数目为(43)。
 
 
  A.  1234567
 
  B.  1523467
 
  C.  1234675
 
  D.  1267435
 
 
 

  相关试题:图          更多>  
 
  第40题    2013年下半年  
   40%
下图的邻接矩阵表示为(39)(行列均以A、B、C、D、E为序);若某无向图具有10个顶点,则其完全图应包含(40)条边。
  第39题    2011年上半年  
   29%
已知某带权有向图G (顶点数为6,顶点编号为1?6)的邻接表如下所示,其中表结点的结构为:

则图G中含有的弧数为(39..
  第43题    2014年上半年  
   45%
已知某带权图G的邻接表如下所示,其中表结点的结构为:
   知识点讲解    
   · 矩阵    · 深度优先遍历
 
       矩阵
        矩阵是很多科学与工程计算问题中研究的数学对象。在数据结构中主要讨论如何在尽可能节省存储空间的情况下,使矩阵的各种运算能高效地进行。
        在一些矩阵中,存在很多值相同的元素或者是零元素。为了节省存储空间,可以对这类矩阵进行压缩存储。压缩存储的含义是为多个值相同的元素只分配一个存储单元,对零元不分配存储单元。
               特殊矩阵
               常见的特殊矩阵有对称矩阵、三角矩阵和对角矩阵等。对于特殊矩阵,由于其非零元的分布都有一定的规律,所以可将其压缩存储在一维数组中,并建立起每个非零元在矩阵中的位置与其在一维数组中的位置之间的对应关系。
               若矩阵An×n中的元素有aij=aji(1≤ijn)的特点,则称之为对称矩阵。
               若为对称矩阵中的每一对元素分配一个存储单元,那么就可将n2个元素压缩存储到能存放nn+1)/2个元素的存储空间中。不失一般性,以行为主序存储下三角(包括对角线)中的元素。假设以一维数组Bnn+1)/2]作为n阶对称矩阵A中元素的存储空间,则Bk](0≤k<nn+1)/2)与矩阵元素aijaji)之间存在着一一对应的关系。
               
               对角矩阵是指矩阵中的非零元素都集中在以主对角线为中心的带状区域中,即除了主对角线上和直接在对角线上、下方若干条对角线上的元素外,其余的矩阵元素都为零。一个n阶的三对角矩阵如下图所示。
               
               三对角矩阵示意图
               若以行为主序将n阶三对角矩阵An×n的非零元素存储在一维数组Bk](0≤k<3n-2)中,则元素位置之间的对应关系为:
               k=3×(i-1)-1+j-i+1=2i+j-3(1≤ijn
               其他特殊矩阵可作类似的推导和计算,这里不再一一说明。
               稀疏矩阵
               在一个矩阵中,若非零元素的个数远远少于零元素的个数,且非零元素的分布没有规律,则称之为稀疏矩阵。
               对于稀疏矩阵,存储非零元素时必须同时存储其位置(即行号和列号),所以三元组(ijaij)可唯一确定矩阵中的一个元素。由此,一个稀疏矩阵可由表示非零元素的三元组及其行、列数唯一确定。
               一个6行7列的稀疏矩阵如下图所示,其三元组表为(1,2,12),(1,3,9),(3,1,-3),(3,6,14),(4,3,24),(5,2,18),(6,1,15),(6,4,-7))。
               
               稀疏矩阵示意图
               稀疏矩阵的三元组表构成一个线性表,其顺序存储结构称为三元组顺序表,其链式存储结构称为十字链表。
 
       深度优先遍历
        从图G中任一个顶点v出发,深度优先遍历(DFS)的算法步骤如下。
        (1)设立搜索指针p,使p指向顶点v
        (2)访问p顶点,并使p指向与p顶点相邻接的且尚未被访问过的顶点。
        (3)若p不空,则重复步骤(2);否则执行步骤(4)。
        (4)沿着刚才访问的次序、方向回溯到一个尚有邻接顶点且未被访问过的顶点,并使p指向这个未被访问的邻接顶点,然后重复步骤(2),直至所有的顶点均被访问为止。
        这个算法的特点是尽可能先对纵深方向搜索,因此可以很容易得到其遍历的递归算法。
        深度优先遍历图的过程实质上是对某个顶点查找其邻接节点的过程,其耗费的时间取决于所采用的存储结构。当图用邻接矩阵表示时,查找所有顶点的邻接点所需时间为O(n2)。若以邻接表作为图的存储结构,则需要O(e)的时间复杂度查找所有顶点的邻接点。因此,当以邻接表作为存储结构时,深度优先搜索遍历图的时间复杂度为O(n+e)。
   题号导航      2014年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第42题    在手机中做本题