一、判断题(每小题2分,共10分)。
1. 线性表的逻辑顺序与物理顺序总是一致的。( )
2. 堆排序是不稳定的排序方法。 ( )
3. 在非空二叉树中,任一结点均有两棵二叉树。 ( )
4. 一个无序的元素序列可以通过构造一棵二叉排序树而变成一个有序的 元素序列。( )
5. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和。( )
二、单项选择题(每小题2分,共10分)
1. 表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素需要移动元素的平均次数为
( ),删除一个元素需要移动元素的平均次数为( )。
A. (n-1)/2 B. n C. n-1 D. n/2
2. 对于一个头指针为L的带头结点的单链表,判定该表为空表的条件是( )。
A. L=NULL; B.L->next=NULL; C. L->next==L; D. L!=NULL;
3. 以下数据结构中,( )是非线性数据结构。
A. 树 B. 字符串 C. 数组 D. 栈
4. 对线性表进行折半查找时,要求线性表必须( )。
A. 以顺序方式存储。
B. 以链式方式存储。
C. 以顺序方式存储,且结点按关键字有序排序。
D. 以链式方式存储,且结点按关键字有序排序。
5.在下面的排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。
A. 希尔排序 B. 冒泡排序 C. 插入排序 D. 选择排序
三、填空题 (每小题2分,共10分)
1. 在内部排序中,平均比较次数最少的是_________,要求附加的内存容量最大的是_________。
2. 由n个权值构成的赫夫曼树共有_________个结点。
3. 在单链表中,除首元结点外,任一结点的存储位置由_________指示。
4. 栈结构允许进行删除操作的一端称为栈的_________。
5. 设GetHead(p)为求广义表p的表头函数,GetTail(p)为求广义表p的表尾函数。其中( )是函数符号,运算 GetTail(GetHead((a,b),(c,d)))的结果是_________。
四、简答题 (每小题7分,共42分)
1. 单链表的存储结构为
typedef struct LNode {
ElemType data;
struct LNode *next ; //结点后继指针
}LNode, *LinkList;
已知L是带表头结点的非空单链表,且p结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列,以实现删除p结点的语句序列_________。
(1) p->next=p->next->next; (2) p=p->next->next;
(3) while(p->next!=q) p=p->next; (4) q=p;
(5) while(p->next->next!=q) p=p->next;
(6) q=p->next; (7) p=L; (8) L=L->next; (9) free (q);
2. 已知一个栈S的输入序列为abcd , 能否通过栈的Push和Pop操作输出序列cbda;如果能,请写出操作序列;如果不能,请说明原因。
3. 已知一棵二叉树的中序遍历序列为CDBAEGF, 先序遍历序列为ABCDEFG,试问能不能唯一确定一棵二叉树?若能,请画出该二叉树。
4. 已知一个有向图和该图的邻接表如图1所示,并依此邻接表进行从顶点a开始出发的深度优先遍历,画出由此得到的深度优先生成树。
已知序列(17,31,13,11,20,35,25,8,27),请画出该二叉排序树。5. 已知序列(12,18,4,3,6,13,2,9,19,8)。请给出采用希尔排序对该序列作升序排序的第一趟结果(初始步长为5)。
五、 算法设计题(第1,2题每题10分,第3题8分,共28分)
1. 下面是一个二叉树中序遍历的非递归算法,请在____________处填上适当内容,使其成为一个完整算法。
Status Inorder (BiTree T,Status(*Visit)(TElemType e) )
{ InitStack (S); Push (S, T);
while ( (1) ) {
while (GetTop (S, p) && p) Push (S, (2) );
Pop (S, p);
if (!StackEmpty (S)) {
Pop (S, p); if(!Vist(p->data)) return ERROR;
Push (S, (3) ) ;
} //if
} //while
return OK;
}
注:typedef struct BiTNode {
TEelemType data;
struct BiTNode *lchild, *rchild; //左右孩子指针
} BiTNode, *BiTree ;
2. 下面是一个快速排序的划分算法,请在 处填上适当内容,使其成为一个完整算法。
int Partition(SqList *L,int low,int high){
//交换顺序表L中子表r[low..high]的记录,枢轴记录到位,并
//返回其所在位置,此时在它之前(后)的记录均不大(小)于它。
L.r[0]=L.r[low];
pivotkey=L.r[low].key ;
while((1)){
while(low<high && L.r[high].key>=pivotkey) (2);
L.r[low]=L.r[high];
while(low<high && L.r[low].key<=pivotkey) ++low;
L.r[high]=L.r[low];
}
L.r[low]=(3);
return low;
}//Partition
3. 编写将栈S中所有值为e的数据元素删除的算法(可以利用辅助栈)。
删除或更新信息,请邮件至freekaoyan#163.com(#换成@)
暨南大学精品课程-数据结构2004真题试卷
暨南大学 /2011-11-23
相关话题/数据结构
暨南大学精品课程-数据结构2003真题试卷答案
一、判断题(共10分) 要求:根据以下各题陈述,在下面表格中填写答案,:正确,X:错误。 ...考研资料下载 暨南大学 2011-11-23暨南大学精品课程-数据结构2003真题试卷
一、判断题(共10分) 1. 当静态链表采用数组实现时,插入与删除操作仍需移动元素。 2. 栈也是一种线性表,也同样有顺序存储结 ...考研资料下载 暨南大学 2011-11-23暨南大学数据结构课程习题
本习题组让学生在课余自我完成,从而达到巩固本课内容、增强学生自我学习能力的效果。各章节安排如下: ...考研资料下载 暨南大学 2011-11-23暨南大学精品课程-数据结构授课教案
暨南大学精品课程-数据结构授课教案本授课教案除了教学内容,还有算法演示的功能。在学习的同时,去看一下算法的动态演示,能把知 ...考研资料下载 暨南大学 2011-11-23暨南大学数据结构考试大纲
数据结构考试大纲Ⅰ考试形式 一、 试卷满分及考试时间 本试卷满分为150分,考试时间为180分钟 二、 答题方式 答题方式为闭 ...暨南大学招生简章 暨南大学 2011-11-19西北工业大学2011《数据库、数据结构与程序设计》考试大纲
题号: 880 数据库、数据结构与程序设计 考试内容: 1. 数据库技术 2. 程序设计与数据结构( C 语言版) 数据库技术: 1、数据库 ...西北工业大学招生简章 西北工业大学 2010-08-29天津工程师范学院2008年《C语言程序设计和数据结构》考试大纲
天津职业技术师范大学 天津工程师范学院 2010-05-22天津工程师范学院2008年《数据结构》考试大纲
天津职业技术师范大学 天津工程师范学院 2010-05-22硕士招生程序设计与数据结构考试大纲
中科院沈阳自动化研究所 沈阳自动化研究所 2010-05-21硕士招生数据结构考试大纲
中科院沈阳自动化研究所 沈阳自动化研究所 2010-05-21