设为首页    加入收藏

自学考试省级导航

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

全国2004年1月高等教育自学考试 数据结构试题(三)
2011-12-25 13:32:08 来源:91考试网 作者:www.91exam.org 【
= 1;

  for (i = n;i>0; i--)

   for (j = i+1; j<n; j++)

    product *=j;

17.已知指针p指向单链表中某个结点,则语句p -> next =p -> next -> next的作用是________________。

18.假设元素只能按a,b,c,d的顺序依次进栈,且得到的出栈序列中的第一个元素为c,则可能得到的出栈序列为________________,不可能得到的出栈序列为________________。

19.若链串结点中的指针占4个字节,每个字符占1个字节,则结点大小为2的链串的存储密度为________________。

 

 

20.右图表示的广义表为________________。

21.若一棵满三叉树中含有121个结点,则该

树的深度为________________。

22.若以邻接矩阵表示有向图,则邻接矩阵上

 第i行中非零元素的个数即为顶点vi的________________。

23.若希望只进行8趟排序便能在4800个元素中找出其中值最小的8个元素,并且要求排序过程中所进行的关键字比较次数尽可能少,则应该选用________________排序方法。

24.在含20个关键字的3阶B树(2-3树)上查找一个关键字,至多需要访问___________次外存。

25.文件上的两类主要操作为________________和________________。

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

26.设栈S1的入栈序列为1 2 3 4(每个数字为13个元素),则不可能得到出栈序列3142。但可通过增设栈S2来实现。例如,按下图中的箭头指示,依次经过栈S1和S2,便可得到序列3 1 4 2。


             

如果用H1和H2分别表示栈S1和S2的进栈操作,用P1和P2分别表示两个栈的出栈操作,则得到3 1 4 2的一个操作步骤为

  H1,H1,H1,P1,H2,P2,P1,H2,P1,H2,P2,H1,P1,H2,P2,P2

   请仿照上例写出利用两个栈从1 2 3 4得到4 1 3 2的操作步骤。

27.已知树如右图所示,

 (1)写出该树的后序序列;

    (2)画出由该树转换得到的二叉树。

 

 

 

 

 

 

28.为关键字(17,33,31,40,48)构造一个长度为7的散列表,设散列函数为h(key)=key%7,用开放定址法解决冲突的探查序列是

 hi = (h(key) + i(key%5+1))%7      0≤i≤6

(1)画出构造所得的散列表;

(2)求出在等概率情况下查找成功时的平均查找长度。

29.已知R[1..8]中的元素依次为(12,5,9,20,6,31,24,27),写出按算法MergeSortDC 对R进行自顶向下的二路归并排序过程中,前5次调用函数Merge(R, low, mid, high)时参数 low, mid 和high的值。

 void MergeSortDC (int R[], int low, int mid, int high )

 {

        int mid;

        if (low<high)

        {

               mid = (low +high)/2;

               MergeSortDC (R, low, mid);

              MergeSortDC (R, mid+1, high);

               Merge (R, low, mid, high);

        }

 } // MergeSortDC

 (1)第一次调用时的参数值;

 (2)第二次调用时的参数值;

    (3)第三次调用时的参数值;

(4)第四次调用时的参数值;

(5)第五次调用时的参数值;

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

30.下列函数的功能是,对以带头结点的单链表作为存储结构的两个递增有序表(表中不存在值相同的数据元素)进行如下操作:将所有在Lb表中存在而La表中不存在的结点插入到La中,其中La和Lb分别为两个链表的头指针。请在空缺处填入合适内容,使其成为一个完整的算法。

 void union (LinkList La, LinkList Lb)

    {

        //本算法的功能是将所有Lb表中存在而La表中不存在的结点插入到La表中

        LinkList pre = La, q;

        LinkList pa = La -> next;

        LinkList pb = Lb -> next;

        free (Lb);

        while (pa && pd)

        {

               if (pa -> data <pb -> data)

               {  pre = pa; pa = pa -> next;}

         

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

网站客服QQ: 960335752 - 14613519 - 48225117