logo资料库

2016年江西师范大学数据结构与程序设计考研真题.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
2016 年江西师范大学数据结构与程序设计考研真题 一、单项选择题(每小题 2 分,共 20 分) 1.对于逻辑结构 B,如果它只有一个开始结点和一个终端结点,而其他的每一个结点有且仅- 有一个前驱和一个后继,则称为() A.网状结构 B.线性结构 C.图形结构 D.树型结构 2.线性表若采用链式存储结构时,要求内存中可用存储单元的地址() A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D,连续不连续都可以 3.队列是一种特殊的线性表,具有()的性质。 A.先进先出 B.先进后出 C.后进后出 D.顺序进出 4.设非空的循环单链表 head 的尾结点由 p 所指向,则该尾结点满足() A.p->next==NULL B.p==NULL C.p->next==head D.p==head 5.一棵具有 5 层的满二叉树所包含的结点个数为() A.15 B.31- C.63 D.32 6.将一棵有 100 个结点的完全二叉树,按照从上到 T、、同…-层次上按从左到右的顺序对所 有结点从 1 开始编号,则编号为 49 的结点,其左孩子编号为() A.98 B.99 C.50 D.48 7.若无向图 G 是具有 6 个顶点的连通图,则至少具有()条边。 A.5 B.6 C.7 D.8 8.适用于二分法检索的表的存储方式及元素排列要求为() A.链式方式存储,元素无序
B.链式方式存储,元素有序 C.顺序方式存储,元素无序 D.顺序方式存储,元素有序 9.在关键字序列{1,3,9,12,32,找关键字为 81,45,62,75,78,81,93,99}中,二分査的结点 81 时,通过()次比较后査找成功。 A.1 B.2 C.4 D.8 10.下面几种排序方法中,空间复杂度最高的是() A.快速排序 B.选择排序 C.归并排序 D.插入排序 二、填空题(每小题 2 分,共 20 分) 1.数据的存储结构主要有 4 种•:顺序存储、链式存储、()和() 2.一个算法的复杂度可分为()复杂度和()杂度。 3.设栈 S 的初始状态为空,元素 T、2、3、4、5 依次全部进栈,然后所有元素依次出栈, 则出栈序列为(). 4.表达式 A*(B+C)/(D-E+F)的后缀表达式是()。 5.在一个单链表中,若 p 所指结点不是最后结点,在 p 之后插入 s 所指结点,应执行语句() 6.对于一个循环单链表,若首指针为 head,指针 p 指向表中的某个结点,则 p 所指结点是该 表中最后一个结点的特征是() 7.一棵非空二叉树的第 i(>1)层上最多有()个结点。 8.在无向图 G 的邻接矩阵 A 中,若 A[i][j]^于 1,则等于().。 9.设图 G 是一个具有 n 个顶点的无向连通图,则 G 的生成树的边数为() 10.要解决散列引起的冲突问题,常用的 3 种方法是开放定址法、()和() 三、程序填空与程序分析题(每小题 6 分,共 24 分) 1.阅读下列程序,写出程序运行的输出结果。 #include voidmain() ( inti,j; i=l; while(i<4) ( for(j-1;j<2*i+l;j++) printf(H%c"/'#1); printf("\n"); * i++; ) ) 2.设单链表的存储结构定义如下: typedefintdatatype;
' typedefstructlink_node{ datatypeinfo; structlink_node*next; )node; typedefnode*linklist; 阅读以下程序,并回答程序后的问题: node*fun(node*headzdatatypex) { node*pm=head, q=head->next; while(q&&q->info!=x) ( pre=q;q=q->next; } if(q) { pre->next=q->next; free(q); } returnhead; (1)请描述函数 fun()的功能; (2)定义变量如下: linklisthead; 设 head 链表如图 1 所示。 请画出执行函数调用语句 head=fun(head,2)之后的 head 链表。 3.设二叉树的存储结构定义如下: typedefstructnode(/*二叉树结点定义*/datatypedata; structnode*lchildz*rchild; )bintnode; typedefbintnode*bintree; 函数 isequal 的功能是判断给定的两棵二叉树 tl 和 t2 是否等价,并返回 0 或丄的结果。请 将程序空白处补充完整。 intisequal(bintreetlzbintreet2) (intb=0; if(tl==NULL&&t2==NULL)(1) else if(tl!t2!=NULL) if(tl->data== if(isequal(tl->lchildzt2->lchild) b= (2) ) ; (3) ;
returnb; } 4.设顺序表的结构定义如下: #defineMAXSIZE100 typedefintdatatype; typedefstruct( datatypea[MAXSIZE];. intsize; }seqlist; 函数 split 的功能是将给定顺序表 LI 中的数据进行分类,奇数存放到存到顺序表 L2 中,偶 数存到顺序表 L3 中。请将程序空白处补充完整。 voidsplit(seqlist*L1Zseqlist*L2Zseqlist*L3) ( intjzk; i=j=k=O; for(i=0;isize;i++)
分享到:
收藏