文档介绍:
模拟试题6
模拟试题6
一、选择题〔每题1分,共10分〕
1、如某数据构造的数据元素的集合为S={A,B,C,D,E,F,G},数据元素之间的关系为R={,,,,,},那么该数据构造是一种可以没有边,但不能没有顶点。〔 〕 四、简答题〔共38分〕 1、排序。
〔1〕写出线性表〔26,45,12,2.,30,6,15,29,16,2,18〕采纳基数排序后,第一趟完毕时的结果。〔4分〕
〔2〕采纳简洁选择排序算法对线性表〔26,15,12,16,5,30〕进展排序,进展交换的第一对元素是哪两个元素?在什么状况下,第一趟不需进展元素的交换?〔6分〕 2、确定二叉树如图1所示。
A〔1〕给出该二叉树的后序遍历的结果。〔5分〕
BC〔2〕假如图1表示的是采纳孩子——兄弟法
转换后的一棵树,请画出原来的树。〔5分〕
DEF
G?1
3、确定图2是一个有向图
BC〔1〕画出该有向图的邻接矩阵。〔5分〕
E〔2〕基于你给出的邻接矩阵,求从顶点B启程的深度
DF优先遍历。〔5分〕
A ?2
4、确定有序表〔4,11,13,19,26,28,33,39,42〕,采纳折半查找 〔1〕各元素的平均查找长度是多少?〔4分〕
〔2〕查找值为10的元素,查找时与哪几个元素进展了比拟?〔4分〕 五、程序填空题〔共15分〕
1、确定STACK表示栈的数据构造,push是将一个值为e的元素进栈,胜利返回1,否那么返回0。完成以下程序。〔4分〕 typedef struct {
int data[101];
int top;/*栈顶元素的下标*/ } STACK;
int push(STACK *S,int e) {
if( ) {
return 0; }
++S->top;
2
=e; return 1; } 2、以下程序是在二叉排序树T中找出值最大的元素,并返回其地址,假如空树那么返回NULL,完成程序。〔6分〕 Typedef struct linkNode {
int data;
struct linkNode *lchild,*rchild; } Node;
Node *sm(Node *T) {
Node *p;
if(