形考作业一
题目1
把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为( )。
选择一项:
A. 逻辑结构
B. 给相关变量分配存储单元
C. 算法的具体实现
D. 物理结构
题目2
下列说法中,不正确的是( )。
选择一项:
A. 数据可有若干个数据元素构成
B. 数据元素是数据的基本单位
C. 数据项是数据中不可分割的最小可标识单位
D. 数据项可由若干个数据元素构成
题目3
一个存储结点存储一个( )。
选择一项:
A. 数据结构
B. 数据类型
C. 数据项
D. 数据元素
题目4
数据结构中,与所使用的计算机无关的是数据的( )。
选择一项:
A. 物理结构
B. 逻辑结构
C. 物理和存储结构
D. 存储结构
题目5
下列的叙述中,不属于算法特性的是( )。
选择一项:
A. 有穷性
B. 可行性
C. 可读性
D. 输入性
题目6
正确
获得2.00分中的2.00分
A. 研究算法中的输入和输出的关系
B. 分析算法的易懂性和文档性
C. 分析算法的效率以求改进
D. 找出数据结构的合理性
题目7
算法指的是( )。
选择一项:
A. 排序方法
B. 解决问题的计算方法
C. 计算机程序
D. 解决问题的有限运算序列
题目8
算法的时间复杂度与( )有关。
选择一项:
A. 所使用的计算机
B. 数据结构
C. 算法本身
D. 计算机的操作系统
题目9
设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为( )。
选择一项:
A. n-i+1
B. n-i-1
C. n-i
D. i
题目10
设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( )。
选择一项:
A. n-i
B. n-i-1
C. n-i+1
D. i
题目11
在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。
选择一项:
A. p->next=q->next
B. p=q->next
C. q->next=NULL
D. p->next=q
题目12
在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( )。
选择一项:
A. p=s->next
B. p->next= s; s->next= p->next
C. p->next=s->next;
D. s->next=p->next; p->next=s;
题目13
非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。
选择一项:
A. p== head
B. p==NULL
C. p->next==head
D. p->next==NULL
题目14
链表不具有的特点是( )。
选择一项:
A. 可随机访问任一元素
B. 插入删除不需要移动元素
C. 不必事先估计存储空间
D. 所需空间与线性表长度成正比
题目15
带头结点的链表为空的判断条件是( )(设头指针为head)。
选择一项:
A. head->next==NULL
B. head->next==head
C. head ==NULL
D. head!=NULL
题目16
在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为( )。
选择一项:
A. 21
B. 19
C. 20
D. 25
题目17
有关线性表的正确说法是( )。
选择一项:
A. 表中的元素必须按由小到大或由大到下排序
B. 除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直
接后继
C. 线性表至少要求一个元素
D. 每个元素都有一个直接前驱和一个直接后继
题目18
向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动( )个元素。
选择一项:
A. 8
B. 7
C. 63
D. 63.5
题目19
一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是( )。
选择一项:
A. 102
B. 98
C. 100
D. 106
题目20
在双向循环链表中,在p所指的结点之后插入指针f所指的新结点,其操作步骤是( )。
选择一项:
A. f->prior=p; f->next=p->next; p->next=f;p->next->prior=f;
B. p->next=f;f->prior=p;p->next->prior=f;f->next=p->next; C. f->prior=p; f->next=p->next; p->next->prior=f; p->next=f; D. p->next=f; p->next->prior=f;f->prior=p;f->next=p->next; 二、填空题(每小题2分,共30分) 题目21 在一个长度为n的顺序存储结构的线性表中,向第i(1£i£n+1)个元素之前插入新元素时,需向后移动回答n-i+1个数据元素。 题目22 从长度为n的采用顺序存储结构的线性表中删除第i(1£i£n+1)个元素,需向前移动回答n-i个元素。 题目23 数据结构按结点间的关系,可分为4种逻辑结构:_____集合_________、____线性结构、__________、____树形结构__________、____图状结构__________。 题目24
数据的逻辑结构在计算机中的表示称为_____存储结构__________或______物理结构_________。 题目25 除了第1个和最后一个结点外,其余结点有且只有一个前驱结点和后继结点的数据结构为回答线性结构,每个结点可有任意多个前驱和后继结点数的结构为回答非线性结 。 答案:线性结构,非线性结构 题目26 数据结构中的数据元素存在多对多的关系称为回答图状结构结构。 题目27 数据结构中的数据元素存在一对多的关系称为回答树形结构结构。 题目28 数据结构中的数据元素存在一对一的关系称为回答线性结构结构。 题目29
要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间复杂度分别为__ n-1___________和__ O(n)___________。 题目30 在一个单链表中p所指结点之后插入一个s所指结点时,应执行回答s->next=p->next;和p->next=s;的操作。 题目31 设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->next=回答head,则p所指结点为尾结点。 题目32 在一个单向链表中,要删除p所指结点,已知q指向p所指结点的前驱结点。则可以用操作回答。 正确答案是:q->next=p->next; 题目33 设有一个头指针为head的单向链表,p指向表中某一个结点,且有p->next= =NULL,通过操作回答,就可使该单向链表构形成单向循环链表。
正确答案是:p->next=head; 题目34 单向循环链表是单向链表的一种扩充,当单向链表带有头结点时,把单向链表中尾结点的指针域由空指针改为回答点的指针域由空指针改为指向回答;当单向链表不带头结点时,则把单向链表中尾结。 答案:头结点的指针、指向第一个结点的指针 题目35 线性链表的逻辑关系是通过每个结点指针域中的指针来表示的。其逻辑顺序和物理存储顺序不再一致,而是一种回答存储结构,又称为回答。 答案:链式、链表 三、问答题(第1小题7分,第2小题8分) 题目36 简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现? 答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。数据在计算机中的存储表示称为数据的存储结构。可见,数据的逻辑结构是反映数据
之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。
题目37
解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。
答:
顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,要求内存中存储单元的地址必须是连续的。
优点:一般情况下,存储密度大,存储空间利用率高。
缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。
链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。
优点:插入和删除元素时很方便,使用灵活。
缺点:存储密度小,存储空间利用率低。
四、程序填空题(每空1分,共15分)
题目38
下列是用尾插法建立带头结点的且有n个结点的单向链表的算法,请在空格内填上适当的语句。
NODE *create1(n)
/* 对线性表(1,2,.....,n),建立带头结点的单向链表 */
{
NODE *head,*p,*q;
int i;
p=(NODE *)malloc(sizeof(NODE));
head=p; q=p; p->next=NULL;
for(i=1;i<=n;i++)
{
p=(NODE *)malloc(sizeof(NODE));
回答p->data=i ; 回答p->next=NULL ; 回答q->next=p ; 回答q=p ; } return(head); } 题目39 下列是用头插法建立带头结点的且有n个结点的单向链表的算法,请在空格内填上适当的语句。
NODE *create2(n) /*对线性表(n,n-1,.....,1),建立带头结点的线性链表 */ { NODE *head,*p,*q; int i; p=(NODE *)malloc(sizeof(NODE)); 回答head=p ; p->next=NULL; 回答q=p ; for(i=1;i<=n;i++) {
p=(NODE *)malloc(sizeof(NODE)); p->data=i; if(i==1) 回答p->next=NULL ; else 回答p->next=q->next ; 回答q->next=p ; } return(head); }
题目40
下列是在具有头结点单向链表中删除第i个结点的算法,请在空格内填上适当的语句。
int delete(NODE *head,int i)
{
NODE *p,*q;
int j;
q=head;
j=0;
while((q!=NULL)&&(j 回答 q=q->next ; j++; } if(q==NULL) return(0); 回答p=q->next 回答q->next=p->next ; free(p); return(1); } 题目41 下列是在具有头结点单向列表中在第i个结点之前插入新结点的算法,请在空格内填上适当的语句。 int insert(NODE *head,int x,int i) { NODE *q,*p; int j; q=head; j=0; while((q!=NULL)&&(j 正确答案是:p->next=q->next 获得1.00分中的1.00分 ; 回答 q->next=p ; return(1); } 形考任务2 题目1 若让元素1,2,3依次进栈,则出栈顺序不可能为( )。 选择一项: A. 2,1,3 B. 3,1,2 C. 3,2,1 题目2 一个队列的入队序列是1,2,3,4。则队列的输出序列是( )。 选择一项: A. 3,2,4,1 B. 1,2,3,4 C. 4,3,2,1 D. 1,4,3,2 题目3 向顺序栈中压入新元素时,应当( )。 选择一项: A. 先存入元素,再移动栈顶指针 B. 先移动栈顶指针,再存入元素 C. 先后次序无关紧要 D. 同时进行 题目4 在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行( )。 选择一项: A. p->next=top;top=p; B. top->next=p; C. p->next=top->next;top=top->next; D. p->next=top->next;top->next=p; 题目5 在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行( )。 选择一项: A. x=top->data;top=top->next; B. x=top->data; C. top=top->next;x=top->data; D. x=top;top=top->next; 题目6 判断一个顺序队列(最多元素为m)为空的条件是( )。 选择一项: A. rear==m-1 B. front==rear+1 C. front==rear 题目7 判断一个循环队列Q(最多元素为m)为满的条件是( )。 选择一项: A. Q->rear!= (Q->front+1)%m B. Q->front==Q->rear C. Q->front==(Q->rear+1)%m D. Q->front=Q->rear +1 题目8 判断栈满(元素个数最多n个)的条件是( )。 选择一项: A. top==0 B. top!=0 C. top=-1 D. top==n-1 题目9 设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始), 则矩阵元素a6,2在一维数组B中的下标是( )。 选择一项: A. 17 B. 23 C. 21 D. 28 题目10 在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个( )结构。 选择一项: A. 队列 B. 先性表 C. 数组 D. 堆栈 题目11 一个递归算法必须包括( )。 选择一项: A. 递归部分 B. 迭代部分 C. 终止条件和迭代部分 D. 终止条件和递归部分 题目12 在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。 选择一项: A. f=r->next; B. r=r->next; C. r=f->next; D. f=f->next; 题目13 在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为( )。 选择一项: A. s->next=r;r=s; B. r->next=s;r=s; C. s->next=f;f=s; D. f->next=s;f=s; 题目14 数组a经初始化char a[ ]=“English”;a[7]中存放的是( )。 选择一项: A. \"h\" B. 字符串的结束符 C. 变量h D. 字符h 题目15 设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是( )。 选择一项: A. BCd B. Bcd C. Abc D. ABC 题目16 字符串 a1=\"AEIJING\",a2=\"AEI\",a3=\"AEFANG\",a4=\"AEFI\"中最大的是( )。 选择一项: A. a3 B. a1 C. a4 D. a2 题目17 两个字符串相等的条件是( )。 选择一项: A. 两串的长度相等,并且对应位置上的字符相同 B. 两串的长度相等 C. 两串的长度相等,并且两串包含的字符相同 D. 两串包含的字符相同 题目18 一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是( )。 选择一项: A. B. 90 C. 28 D. 70 题目19 一个非空广义表的表头( )。 选择一项: A. 可以是子表或原子 B. 只能是原子 C. 不可能是原子 D. 只能是子表 题目20 对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( )个零元素。 选择一项: A. 8 B. 10 C. 72 D. 74 题目21 对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素是( )。 选择一项: A. (10,8,7) B. (10,8,6) C. (7,10,8) D. (7,8,10) 题目22 对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该 结点赋值a,则执行: p=(struct node *)malloc(sizeof(struct node);p->data=a;和( )。 选择一项: A. p->next=top;p=top; B. top->next=p;p=top; C. p->nex=top;top=p; D. top=top->next;pe=top; 题目23 头指针为head的带头结点的单向链表为空的判定条件是( )为真。 选择一项: A. head==NULL B. head->next==NULL C. head->next!=NULL D. head->next!=NULL 题目24 设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是( )阶的对称矩阵。 选择一项: A. 20 B. 15 C. 10 D. 5 题目25 数组a经初始化char a[ ]=“English”;a[1]中存放的是( )。 选择一项: A. \"n\" B. 字符n C. \"E\" D. 字符E 二、填空题(每小题2分,共30分) 题目26 循环队列队头指针在队尾指针回答下一个位置,队列是“满”状态。 题目27 循环队列的引入,目的是为了克服回答假上溢。 题目28 判断一个循环队列LU(最多元素为m)为空的条件是回答 LU->front==LU->rear。 题目29 题干 向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行回答s->next=h;和h=s;操作。(结点的指针域为next) 题目30 从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行x=h-题目31 在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为回答和r=s; r->next=s;(结点的指针域为next) 题目32 在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为回答f=f->next;。 (结点的指针域为next) 题目33 串是一种特殊的线性表,其特殊性表现在组成串的数据元素都是回答 字符。 题目34 空串的长度是回答0 ;空格串的长度是回答空格字符的 。 题目35 设广义表L=((),()),则表头是______________,表尾是______________,L的长度是______________。 则表头是(),表尾是(()),L的长度是2 题目36 广义表A((a,b,c),(d,e,f))的表尾为回答((d,e,f))。 题目37 设有n阶对称矩阵A,用数组s进行压缩存储,当i≥j时,A的数组元素aij相应于数组s的数组元素的下标为回答i(i-1)/2+j。(数组元素的下标从1开始) 题目38 对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_______、_______和_______三项信息。 答案:行下标、列下标和非零元素值 题目39 循环队列用a[0],…,a[7]的一维数组存放队列元素,(采用少用一个元素的模式),设front和rear分别为队头和队尾指针,且front和rear 的值分别为2和7,当前队列中的元素个数是回答5 。 题目40 循环队列的引入,目的是为了克服回答 假上溢。 三、问答题(每小题5分,共20分) 题目41 完成 满分5.00 题干 栈、队列和线性表的区别是什么? 答:栈是一种先进后出的线性表,栈的插入和删除操作都只能在栈顶进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。 队列是一种先进先出的线性表,队列的插入只能在队尾进行,队列的删除只能在队头进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。 题目42 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是多少? 出队序列是e2,e4,e3,e6,e5,e1的过程: (1)e1入栈(栈底到栈顶元素是e1) (2)e2入栈(栈底到栈顶元素是e1,e2) (3)e2出栈(栈底到栈顶元素是e1) (4)e3入栈(栈底到栈顶元素是e1,e3) (5)e4入栈(栈底到栈顶元素是e1,e3,e4) (6)e4出栈(栈底到栈顶元素是e1,e3) (7)e3出栈(栈底到栈顶元素是e1) (8)e5入栈(栈底到栈顶元素是e1,e5) (9)e6入栈(栈底到栈顶元素是e1,e5,e6) (10)e6出栈(栈底到栈顶元素是e1,e5) (11)e5出栈(栈底到栈顶元素是e1) (12)e1出栈(栈底到栈顶元素是空) 栈中最多时有3个元素,所以栈S的容量至少是3。 题目43 有5个元素,其入栈次序为:A、B、C、D、E,在各种可能的出栈次序中,以元素C、D最先的次序有哪几个? 从题中可知,要使C第一个且D第二个出栈,应是A入栈,B入栈,C入栈,C出栈,D入栈。之后可以有以下几种情况: (1)B出栈,A出栈,E入栈,E出栈,输出序列为:CDBAE。 (2)B出栈,E入栈,E出栈,A 出栈,输出序列为CDBEA。 (3)E入栈,E出栈,B出栈,A出栈,输出序列为CDEBA 所以可能的次序有:CDBAE,CDBEA,CDEBA 题目44 简述广义表和线性表的区别和联系。 广义表是线性表的的推广,它也是n(n>0)个元素a1,a2,…,ai,…,an的有限序列,其中ai或者是原子或者是一个广义表。所以,广义表是一种递归数据结构,而线性表没有这种特性,线性表可以看成广义表的特殊情况,当ai都是原子时,广义表退化成线性表。 形考任务三 一、单项选择题(每小题2分,共32分) 题目1 假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为( )。 选择一项: A. 17 B. 16 C. 15 D. 47 题目2 二叉树第k层上最多有( )个结点。 选择一项: A. 2k-1 B. 2k-1 C. 2k-1 D. 2k 题目3 设某一二叉树先序遍历为abdec,中序遍历为dbeac,则该二叉树后序遍历的顺序是( )。 选择一项: A. abedc B. abdec C. debac D. debca 题目4 将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为( )。 选择一项: A. 35 B. 33 C. 34 D. 36 题目5 如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为( )。 选择一项: A. 平衡二叉树 B. 完全二叉树 C. 二叉树 D. 哈夫曼树 题目6 在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( )。 选择一项: A. 5 B. 4 C. 7 D. 6 题目7 在一棵度具有5层的满二叉树中结点总数为( )。 选择一项: A. 31 B. 32 C. 16 D. 33 题目8 利用n个值作为叶结点的权生成的哈夫曼树包含有( )个结点。 选择一项: A. n+1 B. 2*n C. n D. 2*n-1 题目9 利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为( )。 选择一项: A. 16 B. 30 C. 12 D. 18 题目10 在一棵树中,( )没有前驱结点。 选择一项: A. 叶结点 B. 空结点 C. 树根结点 D. 分支结点 题目11 设一棵有n个叶结点的二叉树,除叶结点外每个结点度数都为2,则该树共有( )个结点。 选择一项: A. 2n-1 B. 2n+2 C. 2n+1 D. 2n 题目12 在一个图G中,所有顶点的度数之和等于所有边数之和的( )倍。 选择一项: A. 1 B. 1/2 C. 2 D. 4 题目13 邻接表是图的一种( )。 选择一项: A. 索引存储结构 B. 顺序存储结构 C. 散列存储结构 D. 链式存储结构 题目14 如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是( )。 选择一项: A. 一棵树 B. 有回路 C. 完全图 D. 连通图 题目15 图的深度优先遍历算法类似于二叉树的( )遍历。 选择一项: A. 先序 B. 层次 C. 中序 D. 后序 题目16 已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为( )。 选择一项: A. V1V2V4V5V8V3V6V7 B. V1V2V4V8V5V3V6V7 C. V1V2V4V8V3V5V6V7 D. V1V3V6V7V2V4V5V8 二、填空题 (每小题1分,共20分) 题目17 结点的度是指结点所拥有的回答子树树木或后继结点。 正确答案是:子树树木或后继结点数 题目18 树的度是指回答树中所有结点的度的最大值。 正确答案是:树中所有结点的度的最大值 题目19 度大于0的结点称作__________________或__________________。 分支结点、非终端结点 题目20 度等于0的结点称作__________________或__________________。 叶子结点、终端结点 题目21 在一棵树中,每个结点的_______________或者说每个结点的_______________称为该结点的_______________,简称为孩子。 子树的根、后继结点、孩子结点 题目22 从根结点到该结点所经分支上的所有结点称为该结点的回答祖先。 正确答案是:祖先 题目23 树的深度或高度是指回答树中结点的最大层数。 正确答案是:树中结点的最大层数 题目24 具有n个结点的完全二叉树的深度是_____{log2n}+1________。 题目25 先序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,访问二叉树的回答根结点 ;先序遍历二叉树的回答左子树 ,先序遍历二叉树的回答右子树 。 根结点、左子树、右子树 题目26 中序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,中序遍历二叉树的回答左子树 ;访问而叉树的回答根结点 ,中序遍历二叉树的回答右子树 。 左子树、根结点、右子树 题目27 后序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,后序遍历二叉树的回答左子树 ;后序遍历二叉树的回答右子树 ,访问而叉树的回答根结点 。 左子树、右子树、根结点 题目28 将树中结点赋上一个有着某种意义的实数,称此实数为该结点的回答权 。 正确答案是:权 题目29 树的带权路径长度为树中所有叶子结点的回答带权路径长度之和。 正确答案是:带权路径长度之和 题目30 哈夫曼树又称为回答最优二叉 ,它是n个带权叶子结点构成的所有二叉树中带权路径长度WPL回答最小的二叉 。 答案:最优二叉树,最小的二叉树 题目31 若以4,5,6,7,8作为叶子结点的权值构造哈夫曼树,则其带权路径长度是回答69。 正确答案是:69 题目32 具有m个叶子结点的哈夫曼树共有回答2m-1结点。 正确答案是:2m-1 题目33 图的遍历是从图的某一顶点出发,按照一定的搜索方法对图中回答所有顶点 各做回答一次 访问的过程。 答案:所有顶点; 一次 题目34 图的深度优先搜索遍历类似于树的回答先序遍历。 正确答案是:先序 题目35 图的广度优先搜索类似于树的回答按层次遍历。 正确答案是:按层次 题目36 图常用的两种存储结构是_____________和_____________。 邻接矩阵、邻接表 三、综合题(每小题8分,共40分) 题目37 写出如下图所示的二叉树的先序、中序和后序遍历序列。 答:二叉树的定义是递归的,所以,一棵二叉树可看作由根结点,左子树和右子树这三个基本部分组成,即依次遍历整个二叉树,又左子树或者右子树又可看作一棵二叉树并 继续分为根结点、左子树和右子树三个部分……,这样划分一直进行到树叶结点。 (1)先序为“根左右”,先序序列为:fdbacegihl (2)中序为“左根右”,中序序列为:abcdefghij (3)后序为“左右根”,后序序列为:acbedhjigf 题目38 已知某二叉树的先序遍历结果是:A,B,D,G,C,E,H,L,I,K,M,F和J,它的中序遍历结果是:G,D,B,A,L,H,E,K,I,M,C,F和J,请画出这棵二叉树,并写出该二叉树后续遍历的结果。 (1)二叉树图形表示如下: (2)该二叉树后序遍历的结果是:G、D、B、L、H、K、M、I、E、J、F、C和 A。 题目39 假设通信用的报文由9个字母A、B、C、D、E、F、G、H和I组成,它们出现的频率分别是:10、20、5、15、8、2、3、7和30。请请用这9个字母出现的频率作为权值求: (1)设计一棵哈夫曼树; (2)计算其带权路径长度WPL; (3)写出每个字符的哈夫曼编码。 1)哈夫曼树如图B-4所示。 图B-4 (2)其带权路径长度WPL值为270。 (3)每个字符的哈夫曼编码为:A:100, B:11, C:1010, D:000, E:0010, F:10110, G:10111, H:0011, I:01 题目40 请根据以下带权有向图G (1)给出从结点v1出发分别按深度优先搜索遍历G和广度优先搜索遍历G所得的结点序列; (2)给出G的一个拓扑序列; (3)给出从结点v1到结点v8的最短路径。 (1) 深度优先遍历:v1,v2,v3,v8,v5,v7,v4,v6 广度优先遍历:v1,v2,v4,v6,v3,v5,v7,v8 (2)G的拓扑序列为:v1,v2,v4,v6,v5,v5,v3,v5,v7,v8 (3)最短路径为:v1,v2,v5,v7,v8 题目41 已知无向图G描述如下: G=(V,E) V={V1,V2,V3,V4,V5} E={(V1,V2),(V1,V4),(V2,V4),(V3,V4),(V2,V5),(V3,V4),(V3,V5)} (1)画出G的图示; (2)然后给出G的邻接矩阵和邻接表; (3)写出每个顶点的度。 ① g1的图示和图g1的邻接表如下图所示。 图G ② 图G的邻接矩阵如下图所示: 图G的邻接矩阵 图G的邻接表 ③ V1、V2、V3、V4、V5的度分别为:2,3,2,3,2 四、程序填空题(每空2分,共8分) 题目42 部分正确 获得4.00分中的2.00分 题干 以下是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。 void Inorder (struct BTreeNode *BT) { if(BT!=NULL){ 回答 ; 回答 ; Inorder(BT->right);} } 答案: (1)Inorder(BT->left) (2)printf(\"%c\ 题目43 以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。 void Inorder (struct BTreeNode *BT) { if(BT!=NULL){ 回答 ; Inorder(BT->right); 回答 ;} } (1)Inorder(BT->left) (2)printf(\"%c\ 形考任务四 一、单项选择题(每小题2分,共42分) 题目1 对线性表进行二分查找时,要求线性表必须( )。 选择一项: A. 以顺序存储方式 B. 以顺序存储方式,且数据元素有序 C. 以链接存储方式,且数据元素有序 D. 以链接存储方式 题目2 采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为( )。 选择一项: A. (n-1)/2 B. (n+1)/2 C. n D. n/2 题目3 有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。 选择一项: A. 29/9 B. 26/10 C. 31/10 D. 29/10 题目4 已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较( )次。 选择一项: A. 5 B. 6 C. 4 D. 3 题目5 有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是( )。 选择一项: A. 12,24,30,37,45,53,96 B. 30,24,12,37,45,96,53 C. 37,24,12,30,53,45,96 D. 45,24,53,12,37,96,30 题目6 对于顺序存储的有序表{5,12,20,26,37,42,46,50,},若采用折半查找,则查找元素26的比较次数是( )。 选择一项: A. 6 B. 4 C. 5 D. 3 题目7 在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是( )。 选择一项: A. 冒泡排序 B. 直接插入排序 C. 希尔排序 D. 直接选择排序 题目8 从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为( )。 选择一项: A. 插入排序 B. 归并排序 C. 选择排序 D. 交换排序 题目9 依次将每两个相邻的有序表合并成一个有序表的排序方法称为( )。 选择一项: A. 选择排序 B. 插入排序 C. 归并排序 D. 交换排序 题目10 当两个元素出现逆序的时候就交换位置,这种排序方法称为( )。 选择一项: A. 选择排序 B. 归并排序 C. 插入排序 D. 交换排序 题目11 每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为( )。 选择一项: A. 堆排序 B. 插入排序 C. 快速排序 D. 归并排序 题目12 在待排序元素基本有序的情况下,效率最高的排序方法是( )。 选择一项: A. 归并排序 B. 快速排序 C. 插入排序 D. 堆排序 题目13 对数据元素序列(49,72,68,13,38,50,97,27)进行排序,前三趟排序结果时的结果依次为第一趟:49,72,68,13,38,50,97,27;第二趟:49,68,72,13,38,50,97,27;第三趟:13,49,68,72,38,50,97,27。该排序采用的方法是( )。 选择一项: A. 选择排序法 B. 冒泡排序法 C. 插入排序法 D. 堆积排序法 题目14 对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为( )。 选择一项: A. n-1 B. [log2n] C. n D. n+1 题目15 对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行( )次元素间的比较。 选择一项: A. 4 B. 6 C. 5 D. 3 反题目16 排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为( )排序。 选择一项: A. 插入 B. 快速 C. 选择 D. 归并 题目17 一组记录的关键字序列为(40,80,65,100,14,30,55,50),利用堆排序的方法建立的初始小根堆为( )。 选择一项: A. 40,14,30,50,80,65,55,100 B. 40,80,65,50,14,30,55,100 C. 14,40,30,50,80,65,55,100 D. 40,80,30,50,14,65,55,100 题目18 一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。 选择一项: A. 16,25,35,48,79,82,23,36,40,72 B. 16,25,35,48,79,23,36,40,82,72 C. 16,25,48,35,79,82,23,36,40,72 D. 16,25,35,48,23,40,79,82,36,72 题目19 已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数 列从小到大排序,经过一趟冒泡排序后的序列为( )。 选择一项: A. 16,28,34,54,73,62,60,26,43,95 B. 28,16,34,54,62,60,73,26,43,95 C. 28,16,34,54,62,73,60,26,43,95 D. 16,28,34,54,62,60,73,26,43,95 题目20 一组记录的关键字序列为(56,30,,66,48,50,94,87,100),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为( )。 选择一项: A. 48,30,50,56,66,,94,87,100 B. 30,50,48,56,66,,94,100,87 C. 50,30,48,66,56,,94,87,100 D. 50,30,48,56,66,,94,87,100 题目21 如果要求一个线性表既能较快地查找,又能动态适应变化要求,可以采用( )查找方法。 选择一项: A. 散列 B. 折半 C. 分块 D. 顺序 二、填空题(每小题1分,共16分) 题目22 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是回答 哈希表查找法。 正确答案是:哈希表查找法 题目23 关键字是记录某个回答数据项的 ,用它可以识别、确定一个回答记录 。 答案:数据项的值、记录 题目24 在一个查找表中,能够唯一地确定一个记录的关键字称为回答。 主关键字正确答案是:主关键字 题目25 平均查找长度是指为确定记录在查找表中的位置,需要与给定值进行比较的关键字个数的回答数学期望值。 题目26 回答顺序查找是一种最简单的查找方法。 题目27 折半查找又称为回答二分查 。使用该查找算法的前提条件是,查找表中记录相应的关键字值必须按回答 。 升序或降序答案:二分查找、升序或降序排列 题目28 折半查找只适用于回答顺序存储结构的有序表。 正确答案是:顺序存储结构 题目29 分块查找又称为回答索引顺序 ,它是一种介于回答顺序查找 和折半查找之间的查找方法。 答案:索引顺序查找、顺序查找 题目30 二叉排序树或者是一棵空树,或者是具有下列性质的一棵二叉树: (1)若左子数不空,则左子树所有结点的值回答均小于根结点。 (2)若右子数不空,则右子树所有结点的值回答均大于根结 (3)左右子树又分别是回答二叉排序 答案:均小于根结点的值、均大于根结点的值、二叉排序树 题目31 哈希表是用来存放查找表中记录序列的表,每一个记录的存储位置是以该记录得到关键字为回答自变量,由相应哈希函数计算所得到的回答函数值。 答案:自变量、函数值 题目32 冒泡排序是一种比较简单的回答交换排序方法。 题目33 在对一组记录(50,40,95,20,15,70,60,45,80)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需要比较回答次。 3题目34 在堆排序和快速排序中,若原始记录接近正序和反序,则选用回答录无序,则最好选用回答快速排堆排序,若原始记。 答案:堆排序、快速排序 题目35 n个元素进行冒泡法排序,通常需要进行回答次元素间的比较。 趟冒泡,第j趟冒泡要进行回答答案:n-1、n-j 题目36 当从一个小根堆中删除一个元素时,需要把回答再按条件把它逐层回答调整。 元素填补到回答位置,然后 答案:堆尾、堆顶、向下 题目37 对记录序列排序是指按记录的某个关键字排序,记录序列按回答果是唯一的。 排序结 正确答案是:关键字 三、综合题(每小题7分,共42分) 题目38 已知序列(70,83,100,105,10,32,7,9),请写出对此序列采用插入排序法进行升序排序时各趟的结果。 原始序列:(70),83,100,65,10,32,7,9 第1趟: (70,83),100,65,10,32,7,9 第2趟: (70,83,100),65,10,32,7,9 第3趟: (65,70,83,100),10,32,7,9 第4趟: (10,65,70,83,100),32,7,9 第5趟: (10,32,65,70,83,100),7,9 第6趟: (7,10,32,65,70,83,100),9 第7趟: (7,9,10,32,65,70,83,100) 题目39 已知序列(10,18,4,3,6,12,1,9,15,8),请写出对此序列采用归并排序法进行升序排序时各趟的结果。 原始序列:10,18,4,3,6,12,1,9,15,8 第1趟: [10,18][ 3,4][6,12][1,9][ 8,15] 第2趟: [3,4,10,18,][ 1,6,9,12][ 8,15] 第3趟: [3,4,10,18,][ 1,6,8,9,12,15] 第4趟: [1,3,4,6,8,9,10,12,15,18] 题目40 已知序列(17,18,60,40,7,32,73,65,85)请给出采用冒泡排序法对该序列作升序排列时的每一趟结果。 原始序列:256,301,751,129,937,863,742,694,076,438 第1趟: 256,301,129,751,863,742,694,076,438,937 第2趟: 256,129,301,751,742,694,076,438,863,937 第3趟: 129,256,301,742,694,076,438,751,863,937 第4趟: 129,256,301,694,076,438,742,751,863,937 第5趟: 129,256,301,076,438,694,742,751,863,937 第6趟: 129,256,076,301,438,694,742,751,863,937 第7趟: 129,076,256,301,438,694,742,751,863,937 第8趟: 076,129,256,301,438,694,742,751,863,937 第9趟: 076,129,256,301,438,694,742,751,863,937 题目41 (1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成堆(小根堆),画出相应的完全二叉树(不要求中间过程)。 (2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列。 1) (1) 初始树 堆 (2)102,52,42,82,16,67,32,57 题目42 设查找表为(20,19,24,57,68,11) (1)用冒泡对该表进行排序,要求写出每一趟的排序过程,通常对n个元素进行冒泡排序要进行多少趟冒泡?第j趟要进行多少次元素间的比较? (2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树。(要求以数据元素作为树结点) (3)求在等概率条件下,对上述有序表成功查找的平均查找长度。 (1)原序列16 15 20 53 7 15 16 20 53 7 n-1趟 15 16 20 7 53 n-j次 151****53 157****53 7 15 16 20 53 (2) (3)平均查找长度=(1*1+2*2+3*3)/6=14/6 题目43 如下是一棵二叉排序树,A1,A2,…,A9代表1,2,3,……,9中各个不同数字, (1)给出对该树中序遍历的结果。 (2)A3,A5,A7的值各为多少? (3)请在该树中再插入一个结点9.5作为叶结点,并使它仍然是一棵二叉排序树。 (1) A7 A4 A8 A2 A5 A9 A1 A3 A6 1 2 3 4 5 6 7 8 9 (2) 8 5 1 (3)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务