自考数据结构历年试题及答案 联系客服

发布时间 : 星期三 文章自考数据结构历年试题及答案更新完毕开始阅读7e7bb987e53a580216fcfe68

int front[2],rear[2]; }Queue2; 对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。请对以下算法填空,实现第i个队列的入队操作。

int EnQueue (Queue2*Q,int i,DateType x)

{//若第 i个队列不满,则元素x入队列,并返回1;否则返回0 if(i<0||i>1)return 0;

if(Q->rear[i]==Q->front[ ① ]return0; Q->data[ ② ]=x; Q->rear[i]=[ ③ ]; return1; } ① ② ③

33.已知二叉树的存储结构为二叉链表,阅读下面算法。 typedef struct node { DateType data; Struct node * next; }ListNode;

typedef ListNode * LinkList ; LinkList Leafhead=NULL; Void Inorder (BinTree T) {

LinkList s; If(T){

Inorder(T->lchild);

If ((!T->lchild)&&(!T->rchild)){

s=(ListNode*)malloc(sizeof(ListNode)); s->data=T->data; s->next=Leafhead; Leafhead=s; }

Inorder(T->rchild); } }

对于如下所示的二叉树

(1)画出执行上述算法后所建立的结构;

(2)说明该算法的功能。 五、算法设计题(本题共10分) 34.阅读下列函数arrange()

int arrange(int a[],int 1,int h,int x) {//1和h分别为数据区的下界和上界 int i,j,t; i=1;j=h; while(i

while(i=x)j--; while(i=x)i++; if(i

{ t=a[j];a[j]=a[i];a[i]=t;} }

if(a[i]

(1)写出该函数的功能; (2)写一个调用上述函数实现下列功能的算法:对一整型数组b[n]中的元素进行重新排列,

将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个数。

全国2001年10月高等教育自学考试

数据结构试题参考答案

课程代码:02331

一、单项选择题(本大题共15小题,每小题2分,共30分) 1.D 2.B 3.C 4.B 5.D 6.A 7.C 8,D 9,A 10.C 11.D 12.C 13.D 14.C 15.B 二、填空题(本大题共10小题,每小题2分,共20分) 16.存储(或存储结构) 17.p->next->next 18.进栈和退栈 19.12 20.a4,8 21.384 22.abefcdg 23.快速排序、堆排序、希尔排序 24.2 25.多关键字 三、解答题(本大题共4小题,每小题5分,共20分) 26.

图1 图2 27.

28.该图的图形为:

深度优先遍历序列为:abdce 广度优先遍历序列为:abedc 29.(1)对关键字35、20、33和48进行查找的比较次数为3、2、1、1; (2)平均查找长度ASL?3?2?1?1?29?

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

30. ①S1=S1->next ②s2=s2->next

③s2(或s2!=NULL或s2&&!s1) ④s1(或s1!=NULL或s1&&!s2) ⑤return 0

31.(1)查询链表的尾结点

(2)将第一个结点链接到链表的尾部,作为新的尾结点 (3)返回的线性表为(a2,a3,?,an,a1) 32. ①(i+1)%2(或1-i) ②Q->rear[i]

③(Q->rear[i]+)%Maxsize 33.(1)Leafhead

F H G D ∧ (2)中序遍历二叉树,按遍历序列中叶子结点数据域的值构建一个以Leafhead为头

指针的逆序单链表(或按二叉树中叶子结点数据自右至左链接成一个链表)。

五、算法设计题(本题共10分) 34.(1)该函数的功能是:调整整数数组a[]中的元素并返回分界值i,使所有<x的元

素均落在a[1..i]上,使所有≥x的元素均落在a[i+1..h]上。

(2)int f(int b[],int n) 或 int f(int b[],int n) { {

int p,q; int p,q;

p=arrange(b,0,n-1,0); p=arrange(b,0,n-1,1); q= arrange(b,p+1,n-1,1); q= arrange(b,0,p,0); return q-p; return p-q; } }

2003.1数据结构试题

一、单项选择题(本大题共15小题,每小题2分,共30分。在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内) 1.下面程序段的时间复杂度是( D ) for(i=0;i<n;i++)

for(j=1;j<m;j++) A[i][j]=0;

A.O(n) B.O(m+n+1) C.O(m+n) D.O(m*n)

2.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( B ) A.p=p->next; B.p->next=p->next->next; C.p->next=p; D.p=p->next->next;

3.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next= head,则( D )

A.p指向头结点 B.p指向尾结点

C.*p的直接后继是头结点 D.*P的直接后继是尾结点 4.判定“带头结点的链队列为空”的条件是( C ) A.Q.front==NULL B.Q.rear==NULL C.Q.front==Q.rear D.Q.front!=Q.rear

5.设有两个串T和P,求P在T中首次出现的位置的串运算称作( D ) A.联接 B.求子串 C.字符定位 D.子串定位 6.广义表A=(a,(b),(),(c,d,e))的长度为( A ) A.4 B.5 C.6 D.7

7.一棵含18个结点的二叉树的高度至少为( C ) A.3 B.4 C.5 D.6

8.已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为( D ) A.DEBAFC B.DEFBCA C.DEBCFA D.DEBFCA 9.无向图中一个顶点的度是指图中( B )

A.通过该顶点的简单路径数 B.与该顶点相邻接的顶点数 C.通过该顶点的回路数 D.与该顶点连通的顶点数

10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为( C )