设为首页    加入收藏

自学考试省级导航

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

全国2007年1月高等教育自学考试 数据结构试题(三)
2011-12-25 13:24:38 来源:91考试网 作者:www.91exam.org 【
nbsp;               B.为每个记录设一个索引项

C.为每组字段设一个索引项                   D.为每组记录设一个索引项

二、填空题(本大题共10小题,每小题2分,共20分)

       请在每小题的空格中填上正确答案。错填、不填均无分。

16.链式存储结构的特点是借助_______来表示数据元素之间的逻辑关系。

17.假设带头结点的非空单循环链表中仅设尾指针L,则在第1个结点之前插入指针s所指结点的语句依次是_______;_______。

18.无表头结点的链队列Q为空的条件是_______。

19.不含任何字符的串称为_______。

20.假设按行优先顺序将一个20阶的三对角矩阵A压缩存储在一维数组Q中,其中Q[0]存放矩阵的第1个元素a1,1,那么矩阵元素a3,4在Q中的存储位置k=_______。

21.前序序列和中序序列不相同的二叉树的特征是_______。

22.在含有n个顶点的连通图中,任意两个不同顶点之间的简单路径的最大长度为_______。

23.用_______排序方法对关键字序列(20,25,12,47,15,83,30,76)进行排序时,前三趟排序的结果为:

20,12,25,15,47,30,76,83

12,20,15,25,30,47,76,83

12,15,20,25,30,47,76,83

24.哈希表常用的两类解决冲突的方法是_______和_______。

25.倒排文件和多重表文件的主要区别在于_______的结构不同。

三、解答题(本大题共4小题,每小题5分,共20分)

26.已知主串为″ccgcgccgcgcbcb″,模式串为″cgcgcb″。下表所列为按照朴素的串匹配算法进行的前两趟匹配。请继续完成余下各趟匹配,直至结束。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


27.已知带权图G如图所示,画出图G的一棵最小生成树。

 

 

 

 

 

 


28.对于直接插入排序,希尔排序,冒泡排序,快速排序,直接选择排序,堆排序和归并排序等排序方法,分别写出:

(1)平均时间复杂度低于O(n2)的排序方法;

(2)所需辅助空间最多的排序方法;

(3)最好情况和最坏情况下的时间复杂度相同的排序方法。

(1)

(2)

(3)

29.已知一棵线索化的二叉排序树如图所示。

(1)说明该树的线索化是基于何种遍历次序的;

(2)在该树中插入元素值为53的结点并修改相应线索,画出修改之后的树。

(1)

(2)

 

 

 

 

 

 

 

四、算法阅读题(本大题共4小题,每小题5分,共20分)

30.假设线性表采用顺序存储结构,表中元素值为整型。阅读算法f 30,并回答下列问题:

(1)设顺序表L=(3,7,3,2,1,1,8,7,3),写出执行算法f 30后的L;

(2)简述算法f 30的功能。

  void f 30(SeqList *L)

  {  int i,j,k;

k=0;

for(i=0;i<L->length;i++)

{  for(j=0;j<k && L->data[i]!=L->data[j];j++);

   if(j==k)

   { if(k!=i)L->data[k]=L->data[i];

   k++;

   }

}

L->length=k;

}

(1)

(2)

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

(1)设队列Q=(1,3,5,2,4,6)。写出执行算法f 31后的队列Q;

(2)简述算法f 31的功能。

void  f 31(Queue *Q){

   DataType   e;

   if (!QueueEmpty(Q)){

     e=DeQueue(Q);

     f 31(Q);

     EnQueue(Q,e);

   }

}

(1)

(2)

32.已知树的存储结构为孩子兄弟链表,其类型定义如下:

typedef struct CSTNode {

   char data;

   struct CSTNode leftmostchild,*rightsibling;

} CSTNode, *CSTree;

阅读函数f 32,并回答下列问题:

(1)对于如图所示树,写出函数调用f 32(T)的返回值;

(2)简述树T非空时函数f 32返回值的含义。

int f32(CSTree T){

   int c;

CSTree p;

if (!T->leftmostchild) return 1;

else {

  c=0;

  for(p=T->leftmostchild;p;p=p->rightsibling)

    c+=f32(p);

  return c;

}

  }

(1)

(2)

33.已知数组R[1..p-1]中的元素序列为一个大根堆,函数Adjust(R,p)将R[1..p]重新调整为一个大根堆。

(1)在函数Adjust的空缺处填入适当内容,使其成为一个完整的函数;

(2)简述函数f33(R,n)的功能。

void  Adjust(SeqList R,int p)

{  int i,j;

   RecType temp=R[p];

   i=p;

   j=i/2;

   while(

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

网站客服QQ: 960335752 - 14613519 - 48225117