设为首页    加入收藏

自学考试省级导航

全国 A安徽 B北京 C重庆 F福建 G广东 广西 甘肃 贵州 H河南 河北 湖南 湖北 黑龙江 海南 J江苏 江西 吉林 L辽宁 N内蒙古 宁夏 Q青海 S山东 山西 陕西 四川 上海 T天津
     X新疆 西藏 Y云南 Z浙江 历年真题分类检索

全国2009年1月高等教育自学考试 数据结构试题(五)
2011-12-25 13:21:54 来源:91考试网 作者:www.91exam.org 【
bsp; VertexNode adjlist[ MaxVertexNum ] ;

  int n,e;    //图的当前顶点数和弧数

}ALGraph;    //邻接表类型

其中顶点表结点VertexNode

边表结点EdgeNode结构为:

阅读下列算法,并回答问题:

(1)已知某有向图存储在如图所示的邻接

    表G中,写出执行f32(&G)的输出;

(2)简述算法f32的功能。

int visited[ MaxNum ];

void DFS(ALGraph * G, int i) {

  EdgeNode * p;

  visited [ i ] = TRUE ;

    if (G - > adjlist[ i]. firstedge = = NULL)

      printf( "% c ", G - > adjlist[ i]. vertex);

    else {

      p = G - > adjlist[ i]. firstedge;

      while (p ! = NULL) {

         if ( ! visited[p -> adjvex] )

         DFS( G, p - > adjvex) ;

         p = p->next;

}

}

}

void f32 ( ALGraph * G) {

   int  i;

   for (i = 0; i < G->n; i ++)

      visited [ i ] = FALSE ;

   for (i = 0; i < G->n; i++)

      if ( ! visited[i] ) DFS(G, i) ;

}

(1)

(2)

33.下列算法f33的功能是对记录序列进行双向冒泡排序。算法的基本思想为,先从前往后通过交换将关键字最大的记录移动至后端,然后从后往前通过交换将关键字最小的记录移动至前端,如此反复进行,直至整个序列按关键字递增有序为止。请在空缺处填入合适的内容,使其成为完整的算法。

 

#define MAXLEN 100

typedef int KeyType;

typedef struct {

  KeyType key;

  InfoType otherinfo;

} NodeType ;

typedef NodeType SqList[ MAXLEN ];

void f33 ( SqList R, int n)

{  int i,j,k;

   NodeType t;

 i =0;

 j =n-l;

   while (i < j) {

     for (      (1)      )

       if (R[k].key > R[k +l].key) {

           t = R[k];

           R[k] = R[k +1];

           R[k +1] = t;

         }

       j--;

     for (k =j; k > i; k -- )

       if (      (2)      ) {

         t = R[k];

         R[k] = R[k-1];

         R[k-1] = t;

}

            (3)       ;

}

}

(1)

(2)

(3)

五、算法设计题(本大题10分)

34.假设以带头结点的单链表表示线性表,单链表的类型定义如下:

typedef int DataType;

typedef struct node {

   DataType data;

   struct node * next;

} LinkNode, * LinkList;

编写算法,删除线性表中最大元素(假设最大值唯一存在)。函数原型为:

void  f34(LinkList head) ;

Tags:
】【打印繁体】 【关闭】 【返回顶部
上一篇全国2008年10月高等教育自学考试 .. 下一篇全国2009年10月高等教育自学考试 ..

网站客服QQ: 960335752 - 14613519 - 48225117