第一章 绪论(总时长:56分26秒,共6讲) 第1讲 数据结构的基础概念(总时长12分钟)随堂测验 1、一个抽象类型包括数据对象、 和一组处理数据的操作。
a、数据对象中各元素间的结构关系
b、数据元素集
c、接口
d、数据对象集
2、抽象数据类型具有 、信息隐蔽的特点。
第2讲 数据结构的内容(总时长5分29秒)随堂测验 1、线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。( )
2、1、数据结构的逻辑结构分为集合、线性、层次和 四种。
3、2、数据结构的存储结构分为 和非顺序 两种。
4、3、在线性结构、树形结构和图结构中,数据元素之间分别存在着一对一、一对多和 联系。
第3讲 数据结构与c语言表示(总时长7分32秒)随堂测验 1、当需要用一个形式参数直接改变对应实参的值时,该形式参数应说明为 。
a、与实参同类型指针参数
b、不需要参数
c、与实参同类型的参数
d、全局变量
第4讲 算法性能评价(总时长8分06秒)随堂测验 1、1、执行下面的程序段的时间复杂度为 。 for(int i=0;i
a、o() b、o() c、o(m*n) d、o (m n) 2、2、执行下面程序段时,语句s的执行次数为 。 for(int i=0;i<=n;i ) for(int j=0;j a、 b、 c、n(n 1) d、第5讲 算法与算法的描述(总时长14分59秒)随堂测验 1、算法设计的要求是:正确性、可读性 、 和高效率和低存储 。 a、确定性 b、健壮性 c、可行性 d、有限性 2、算法具有 有限性、确定性、 、输入、输出五大特性。 a、可行性 b、可读性 c、健壮性 d、正确性mooc第一章单元测试题 1、执行下面的程序段的时间复杂度为( )。 for(int i=0;i a、o(m2) b、o(n2) c、o(m*n) d、o(m n) 2、执行下面程序段时,语句s的执行次数为( )。 for(int i=0;i<=n;i ) for(int j=0;j<=i;j ) s; a、n*n b、n*n/2 c、(n 1)*(n 2)/2 d、n(n 1)/2 3、评价一个算法性能好坏的重要标准是( )。 a、算法易于调试 b、算法易于理解 c、算法的正确性 d、算法的时间复杂度 4、算法的时间复杂度与( )有关。 a、问题规模 b、计算机硬件性能 c、编译程序质量 d、程序设计语言 5、算法分析的主要任务是分析( )。 a、算法是否具有较好的可读性 b、算法中是否存在语法错误 c、算法的功能是否符合要求 d、算法的执行时间与所需空间与问题规模的关系 6、算法分析的目的是( )。 a、找出数据结构的合理性 b、研究算法中输入和输出的关系 c、分析算法的效率以求改进 d、分析算法的可读性 7、数据的最小单位是( )。 a、数据项 b、数据类型 c、数据元素 d、数据变量 8、某算法的时间复杂度是o(n^2),表明该算法的( )。 a、问题规模是n^2 b、问题规模与n^2正比 c、执行时间与n^2正比 d、执行时间等于n^2 9、若需要利用形式参数直接访问修改实参值,则应将形参说明为( )参数。 a、指针 b、值参数 c、实地址 d、地址参数 10、如下程序段: for(i=1;i<=n-1;i ) for(j=i 1;j<=n;j ) x=x 1; 其中语句x=x 1执行的语句频度为( )。 a、n*n b、n*(n-1)/2 c、n*(n 1)/2 d、n*(n-1) 11、以下算法的时间复杂度为( )。 if (n >= 0) { for(int i = 0; i < n; i ) for(int j = 0; j < n; j ) printf("输入数据大于等于零\n"); } else { for(int j = 0; j < n; j ) printf("输入数据小于零\n"); } a、o(1) b、o(n*n n) c、o(n) d、o(n*n) 12、在数组a[0..n-1]中查找给定值k的算法大致如下: i=n-1; while(i>=0&&(a[i]!=k)) i--; return i; 该算法的时间复杂度为( )。 a、o(n-i 1) b、o(n-i) c、o(n) d、无法确定 13、下面算法的时间复杂度为( )。 x=100; y=100; while(y>0) if(x>100) {x=x-10; y--;} else x ; a、o(n) b、o(100) c、o(1) d、o(n*n) 14、下面的算法是判断n是否为素数,其算法时间复杂度为( )。 void prime(int n) { 判断n是否是素数 */ for (i=2; isqrt(n)) printf("%d is a prime number", n); else printf("%d is not a prime number", n); } a、o(n) b、o(1) c、o(sqrt(n)) sqrt表示对n取根方 d、o(n-i) 15、一个抽象数据类型包括( )。 a、数据对象 b、数据对象中各元素间的关系 c、数据 d、一组基本操作 16、以下属于数据元素间基本逻辑结构的是( )。 a、集合 b、线性 c、树 d、图 17、以下属于算法特性的是( )。 a、0个或多个输入 b、至少一个输出 c、正确性和有限性 d、可行性 18、算法设计的要求包括( )。 a、正确性 b、可读性 c、健壮性 d、高效率和低存储 19、数据元素在计算机的存储映像包括( )。 a、顺序存储 b、非顺序存储 c、图结构 d、树结构 20、具有线性结构的数据元素只能顺序存储,非线性结构的元素只能非顺序存储。 21、算法就是程序。 22、算法的优劣与算法描述的语言无关。 23、算法的可行性是指每一条指令具有明确含义。 24、健壮的算法不会因为非法输入而出现莫名的执行结果。 25、高效率和低存储是衡量一个算法的唯一标准。 26、数据类型就是一组性质相同的值的集合和在该集合上的一组操作的总称。 27、数据元素的存储结构分为顺序存储和非顺序存储。 28、数据元素的顺序存储优于非顺序存储。 29、一个数据结构在存储时,只需要存储数据元素即可。mooc第一章单元作业 1、计算下列程序段中x 的语句频度: x=1; for(int i = 0; i < n; i ) for(int j = i; j < n; j ) x ; 2、(1)简述数据元素间的四类基本逻辑结构。 (2)抽象数据类型定义。 (3)数据元素及其关系的两类存储结构与特点。第二章 线性表(一)(总时长:72分22秒,共6讲) 第1讲 线性表的概念(总时长9分20秒)随堂测验 1、线性表是具有n个( )的有限序列(n>0) a、数据对象 b、数据元素 c、字符 d、数据项 2、线性表是一个( )。 a、有限序列,可以为空 b、有限序列,不可以为空 c、无限序列,可以为空 d、无限序列,可以为空 3、线性表的特点是每个元素都有一个前驱和一个后继。()第2讲 线性表的顺序存储(总时长13分)随堂测验 1、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( )(1<=i<=n 1)。 a、o(1) b、o(n) c、o(n*n) d、o() 2、若长度为n的线性表采用顺序存储结构,删除第i个位置的元素,需要移动的元素个数为( )。 a、i b、n-i c、n-i 1 d、n-i-1第3讲 线性表顺序结构应用示例及小结(总时长7分57秒)随堂测验 1、对一个长度为n的顺序表,假设在任何位置上插入一个元素的概率是相等的,那么插入一个元素时要移动表中的( )个元素。 a、n b、n 1 c、 d、 2、线性表的顺序存储是指将表中元素按照从大到小或从小到大存储。第4讲 线性表的链式存储(总时长10分20秒)随堂测验 1、通过表达式 可以获取带头结点的单链表l中首元素结点的数据值。 a、l->next b、(l->next)->data c、l->data d、l->next 2、单链表中必须设有头结点。()第5讲 单链表的基本运算(总时长20分58秒)随堂测验 1、下列选项中, 项是链表不具有的特点。 a、插入和删除运算不需要移动元素 b、所需要的存储空间与线性表的长度成正比 c、不必事先估计存储空间大小 d、可以随机访问表中的任意元素 2、有一个带头结点的单链表head,则判断其是否为空链表的表达式是 a、head= =null b、head-〉next= =null c、head-〉next= =head d、head!=null 3、在一个单链表中p所指结点后插入一个s所指结点时, 应执行语句: 。 a、p->next=s;s->next=p->next; b、s->next=p->next;p->next=s; c、s->next=p->next;p=s; d、s->next=p;p->next=s;第6讲 单链表运算的应用示例及小结(总时长10分47秒)随堂测验 1、设指针变量p指向单链表中结点a的直接前驱,若删除单链表中结点a,则需要修改指针的操作序列为( )。 a、q=p->next;p->next=q->next;free(q); b、q=p->next; p->next=q->next; c、p->next=p-> next->next; d、q=p->next;p->data=q->data;free(q); 2、对链表进行插入和删除操作时不必移动链表中结点。( ) 3、在单链表中,可以从头结点出发,查找到表中所有结点。( )第二章 第一次单元测验 1、在长度为n的顺序表中的第i( 1 =< i <= n 1 )个位置上插入一个元素,其算法时间复杂度为( )。 a、o(logn)(以2为底) b、o(1) c、o(n) d、o(n*n) 2、在长度为n的顺序表中的第i( 1 =< i <= n 1 )个位置上插入一个元素,需要移动的元素个数为( )。 a、n-i b、i c、n-i 1 d、n-i-1 3、链表不具有的特点是( )。 a、插入、删除不需要移动元素 b、可随机访问任一元素 c、不必事先估计存储空间 d、所需存储空间与线性表程度成正比 4、在一单链表中,删除指针p所指的后继结点,以下语句正确的是( )。 a、p->next=p->next->next; free(p->next); b、free(p->next);p->next=p->next->next; c、p=p->next; d、s=p->next;p->next=s->next;free(s); 5、假设删除长度为n的顺序表中的每个元素的概率相同,则删除一个元素平均要移动的元素个数是( )。 a、n b、(n 1)/2 c、(n-1)/2 d、n/2 6、设某顺序表中第一个元素的地址是base,每个结点占m个单元,则第i个结点的地址为( )。 a、base (i-1)×m b、base i×m c、base-i×m d、base (i 1)×m 7、长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i的合法值应该是( )。 a、i>0 b、1≤i≤n 1 c、1≤i≤n-1 d、0≤i≤n 1 8、非空单链表结点结构为【data,next】,若指针p所指结点是尾结点,则( )表达式为真。 a、p==null b、p->next==null c、p->next==p d、p->next!=null 9、某顺序表的第一个元素的存储地址是500,每个元素占4个单元,则第8个元素的起始地址是( )。 a、504 b、508 c、516 d、528 10、在长度为n的顺序表中删除第i(1<=i<=n)个位置上的元素,需要移动的元素个数为( )。 a、n-i b、n-i 1 c、n-i-1 d、i 11、单链表中增加头结点的目的是存储链表的长度。 12、静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。 13、线性表在链式存储时,查找第i个元素的时间同i的值无关。 14、线性表在顺序存储时,查找第i个元素的时间同i 的值成正比。 15、线性表的特点是每个元素都有一个前驱和一个后继。 16、线性表的链式存储结构优于顺序存储。 17、顺序存储方式的优点是存储密度大,插入、删除效率高。 18、顺序表的每个结点只能是一个基本类型,而链表的每个结点可以是一个构造类型。 19、插入和删除操作是线性表的基本操作。这两种操作在数组中也经常使用。 20、在顺序表中,逻辑上相邻的两个元素物理存储上也一定也相邻。 21、在线性表的链式存储结构中,逻辑上相邻的两个元素在物理存储上并不一定相邻。 22、线性表采用顺序存储,必须占用一段地址连续的存储单元。 23、顺序表结构适宜进行随机访问,而链表适宜进行插入、删除。 24、若某线性表经常做插入、删除操作,易采用 结构存储。【请填 顺序 或 链式】第二章 第一次作业 1、描述以下三个概念及其关系:头指针,头结点,首元素结点。 2、长度为n的顺序表中,假设在任何位置插入元素的概率均相等,则插入一个元素平均需要移动多少个元素? 3、简述顺序表优缺点。 4、编写算法,从顺序表中删除自第i个元素开始的k个元素。若不够k个元素时,将i后面的元素全部删除。第二章 线性表(二)(总时长:59分37秒) 第7讲 循环链表(总时长7分05秒)随堂测验 1、有一个带头结点的循环单链表head,则判断其是否为空链表的条件是 。 a、head==null b、head-〉next==null c、head-〉next==head d、head!=null 2、在单向循环链表中,从表中任意结点出发都可以顺着next域访问到表中所有元素()第8讲 双向链表(总时长7分47秒)随堂测验 1、与单链表相比,双向链表的优点之一是 。 a、插入删除操作更加方便 b、可以进行随机访问 c、可以省略表头指针和表尾指针 d、访问前后相邻结点更方便。 2、在双向链表l中,可以从任一结点p出发沿同一方向的指针域查找到表中所有元素。()第9讲 静态链表(总时长6分24秒)随堂测验 1、静态链表中与动态链表的插入和删除运算类似,不需要做元素的移动。() 2、静态链表既有顺序存储结构的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与位置序号i无关,可以实现随机存取。()第10讲 链式结构小结(总时长7分32)随堂测验 1、已知单链表的头指针为head且该链表不带头结点,则该单链表为空的条件是 。 a、head== null b、head->next==null c、head->next==head d、head!=null 2、设指针变量p指向单链表中某结点的直接前驱,若删除单链表中该结点,需要修改指针的操作序列为 。 a、q=p->next; p->next=q->next;free(q); b、q=p->next; free(q); c、p->next=p->next->next;free(p->next); d、q=p->next; free(q); 3、设带有头结点的单向循环链表的头指针变量为head,则其判空条件是 。 a、head==null b、head->next==null c、head->next==head d、head!=null 4、在双向循环链表中,可以从任一结点p出发沿同一方向的指针域查找到表中所有元素。()第12讲 顺序表与链表的综合比较(总时长6分08秒)随堂测验 1、下列选项中, 项是链表不具有的特点。 a、插入和删除运算不需要移动元素 b、所需要的存储空间与线性表的长度成正比 c、不必事先估计存储空间大小 d、可以随机访问表中的任意元素 2、在线性表中最常用的操作是存取第i个元素及其前趋的值,可采用 存储方式最省时间? a、顺序表 b、带头指针的双向循环链表 c、带头指针的单向循环链表 d、带头指针的单向链表 3、下面关于线性表的叙述错误的是( )。 a、线性表采用顺序存储必须占用一片连续的存储空间 b、线性表采用链式存储不必占用一片连续的存储空间 c、线性表采用链式存储便于插入和删除操作的实现 d、线性表采用顺序存储便于插入和删除操作的实现总结与提高(总时长15分15秒)随堂测验 1、某线性表中最常用的操作是存取序号为i的元素和在最后进行插入和删除运算,则采用 存储方式时间性能最好。 a、双向链表 b、双向循环链表 c、单向循环链表 d、顺序表 2、已知一个带头结点的非空循环单链表,其尾指针是r,则其首元素结点的地址为: a、r->next b、*( r->next->next ) c、&( r->next->next ) d、r->next->next 3、线性表的顺序存储优于链式存储结构。() 4、在带头结点的非空单链表中,头结点的存储位置由 指示第二章 第二次单元测试 1、非空循环单链表l中,p指针指向尾结点,则以下表达式成立的是( )。 a、p->next==null b、p==null c、p->next==l d、p==l 2、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。 a、顺序表 b、双向链表 c、带头结点的双循环链表 d、单循环链表 3、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。 a、单链表 b、仅有头指针的单循环链表 c、双链表 d、仅有尾指针的单循环链表 4、对于双向循环链表,在两个结点之间插入一个新结点需修改的指针共( )个。 a、2 b、3 c、4 d、5 5、将带头指针的长度为m的单链表,链接到同样带头指针的长度为n的单链表末尾。该算法的时间复杂度为( )。 a、o(m) b、o(n) c、o(m n) d、o(m*n) 6、静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。 7、循环单链表中,每个结点都有一个前驱和后继,因此循环单链表不是线性结构。 8、静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。 9、静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。 10、线性表在顺序存储时,查找第i个元素的时间同i的值无关。 11、线性表在顺序存储时,删除第i个元素的时间同i的值无关。 12、静态链表因为采用的是一段连续的空间来存储元素,因此查找第i个元素的时间和i无关。 13、在带头指针的长度为n的双向循环链表的末尾插入一个元素,其时间复杂度为o( )。(填写阿拉伯数字或字母) 14、某双向链表中,结点结构为【prior,data,next】。那么删除p指针所指结点时,需要执行语句:p->next->prior=p->prior; ; free(p); 15、在某双向链表中删除一个结点,需要改动 个指针域(填写阿拉伯数字)第二章 第二次作业 1、以下算法是求取某带头结点的单链表的长度,请补充完整代码。 int linklength(linklist l) { node* p=l->next; int i=0; ...... //补充此处代码 return i; //返回链表长度 } 2、带头结点的单链表l,编写算法实现就地逆置。 3、某一元多项式采用带头结点的单链表存储,编写算法求其导数。函数声明:void derivative(polynode *pl),参数为一元多项式的头指针,该多项式按照幂次递增的次序排列,结果仍为pl所指的链表。第三章 栈与队列(一)(总时长53分23秒) 第1讲 栈的定义与实现(总时长6分59秒)随堂测验 1、栈操作的特性是( ) a、fifo b、lifo c、fcfs d、插入和删除操作限制在表的两端进行 2、栈中,允许进行插入和删除的一端称为() a、栈顶 b、栈底 c、栈头 d、栈尾 3、栈是线性结构,是操作受限制的线性表。()第2讲 栈的顺序结构(总时长10分54秒)随堂测验 1、1、 已知顺序栈的地址为s,此时栈不满且栈顶指示器top指向真实栈顶,执行元素x进栈操作正确的语句是( ) a、s->top ;s->elem[s->top]=x; b、s->top= s->top 1;s->elem[s->top]=x; c、s->elem[ s->top]=x; d、s->elem[s->top]=x;s->top ; 2、2、 已知顺序栈的地址为s ,此时栈不空且栈顶指示器top指向真实栈顶,执行出栈操作并将出栈元素赋值给x所指向的单元,则下列语句中,正确的是( ) a、s->top--; *x= s->elem[s->top]; b、*x= s->elem[s->top]; s->top= s->top-1; c、*x =s->elem[s->top--]; d、*x= s->elem[s->top];s->top--; 3、1、 已知顺序栈的地址为s ,此时栈不空且栈顶指示器top指向真实栈顶,执行取栈顶操作的语句是 *x= s->elem[s->top--];( )第3讲 顺序栈的两栈共享(总时长13分19秒)随堂测验 1、已知一个双端栈的地址为ds,则该双端栈不满时,,元素x进1号栈(高端栈)操作的语句是() a、ds->stack[--ds->top[1]]=x; b、ds->stack[ds->top[1]]=x;ds->top[1]--; c、ds->top[1]--; ds->stack[ds->top[1]]=x; d、ds->stack[ ds->top[1]]=x; 2、已知一个双端栈dstack ,则判断该双端栈栈满的条件是() a、dstack.top[0] 1= = dstack.top[1] b、dstack.top[0] = = dstack.top[1] c、dstack.top[0]-1= = dstack.top[1] d、dstack.top[0] = = dstack.top[1]-1 3、已知一个双端栈的地址为ds,则该双端栈不空时,1号栈(高端栈)出栈操作的语句是*x= ds->stack[ds->top[1]--]()第4讲 栈的链式实现(总时长8分01秒)随堂测验 1、已知带头结点的链栈top, 则该链栈不空时, 出栈操作的语句是( ) a、top->next=top->next->next; *x=top->next->data; b、*x=top->next->data; top->next=top->next->next; free(top->next); c、*x=top ->data;p=top;top =p->next;free(p); d、*x=top->next->data;p=top->next; top->next=p->next;free(p); 2、已知带头结点的链栈top, 则该链栈为空的条件是( ) a、top==null b、top->next= =null c、top->next->next= =null d、top->next= =top 3、已知带头结点的链栈top, 则元素x对应的新结点s进栈操作的语句是() a、s->next=top->next;top->next=s; b、top->next=s; s->next=top->next; c、s->next=top;top =s; d、top =s; s->next=top;第5讲 栈的应用(总时长8分34秒)随堂测验 1、在括号匹配算法中,当正扫描检测的符号是右括号,此时的栈是空栈,则()。 a、右括号进栈; b、继续向下扫描; c、取出栈顶元素做匹配检查; d、此时出现“右括号多了”的不匹配现象。 2、在算术表达式求值的算法中,若当前正扫描的符号是运算符s,且s的优先级比运算符栈栈顶元素的优先级高,则( ) a、运算符栈出栈,运算数出栈,做运算; b、s 进运算符栈; c、取运算符栈栈顶,运算数栈顶,做运算; d、s 进运算数栈; 3、在括号匹配算法中,当正扫描的符号是左括号时,则该做左括号( )。第6讲 栈与递归(上)(总时长10分43秒)随堂测验 1、递归进层(i→i 1层)系统需要做三件事是( ) a、保留本层参数与返回地址; b、保留下层参数和函数地址; c、为被调用函数的局部变量分配存储区,给下层参数赋值; d、将程序转移到被调函数的入口。 2、从被调用函数返回调用函数之前,递归退层(i←i 1层)系统也应完成三件工作是( ) a、保存被调函数的计算结果; b、释放被调函数的数据区,恢复上层参数; c、保存返回上层函数的地址; d、依照被调函数保存的返回地址,将控制转移回调用函数。 3、递归是指在定义自身的同时又出现了对自身的引用。( ) 4、系统需设立一个递归工作栈作为整个递归函数运行期间使用的数据存储区。每层递归所需信息构成一个( )。第三章 单元测验 1、栈的特点是( )。 a、先进先出 b、先进后出 c、后进后出 d、没有顺序 2、队列的特点是( )。 a、先进先出 b、先进后出 c、后进先出 d、没有顺序 3、栈之说以叫限定性线性表,是因为( )。 a、栈的操作位置受限制 b、栈中的元素类型受限制 c、栈的应用范围受限制 d、栈的存储结构受限制 4、输入序列为123,若进栈出栈可以交替进行,则不能可以得到的出栈序列是( )。 a、321 b、312 c、123 d、132 5、以下会用到栈的应用的是( )。 a、递归 b、子程序调用 c、括号匹配 d、其他选项均有可能 6、循环队列存储在数组a[0..m-1]中,则入队时rear应该变化为( ) a、rear b、rear=(rear 1) mod (m-1) c、rear=(rear 1) mod m d、rear=(rear 1) mod (m 1) 7、循环队列a[0..n-1]存放其元素值,用f和r分别表示队头和队尾,则当前队列中的元素数是( )。 a、(r-f n)%n b、r-f 1 c、r-f-1 d、r-f 8、栈和队列的共同点是( )。 a、都是先进先出 b、都是先进后出 c、只允许在端点处插入和删除元素 d、它们没有共同点 9、当利用大小为n的数组(下标从1到n)顺序存储一个栈时,假定用top==n表示栈空,则每次向这个栈插入一个元素时,首先应执行( )语句修改top指针。 a、top ; b、top--; c、top=0; d、top=n; 10、设栈s和队列q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈s。如果每个元素出栈后立即进入队列q,且7个元素出队的顺序为b,d,e,f,c,a,g,则栈s的容量至少是( )。 a、1 b、2 c、3 d、4 11、以下属于递归求解问题的前提条件的是( )。 a、原问题可层层分解为子问题,且子问题比原问题规模小 b、子问题的解法与原问题解法相同 c、最小的子问题有解 d、其他选项均是 12、以下属于消除递归的主要原因是( )。 a、递归程序不容易理解 b、递归程序时空效率较差 c、递归程序容易写错 d、其他选项均是 13、一个栈的输入序列为123……n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( ) a、i b、n-i c、n-i 1 d、不确定 14、消除递归肯定要用到栈,否则无法完成。 15、若输入序列为1234,则通过一个栈可以得到输出序列3124。 16、若输入序列为1234,则通过栈只能得到4321的输出序列。 17、有些问题,比如汉诺塔问题等,只能用递归来解,无法转换成非递归算法。 18、顺序栈因为是顺序存储,所以可以随机存取栈中任意元素。 19、两顺序栈共享空间,也存在空间溢出问题。 20、栈与队列是一种特殊操作的线性表。 21、栈和队列都是限制插入和删除位置的线性结构。 22、函数或过程调用需要用到栈。 23、栈中将允许操作的一端称作 。 24、栈中将不允许操作的一端称作 。 25、凡是对元素的保存次序与使用顺序相反的,都可以使用 。 26、若栈采用单链表结构实现,则链表的头指针的位置,表示的是栈的 。(请填栈顶或栈底) 27、若栈采用顺序存储方式存储,现两栈共享空间s[1~n],top[i]代表第i个栈( i =1,2)栈顶。栈1的底在v[1],栈2的底在v[n],则栈满的条件是 。(请填top[1] top[2]==n 或者 top[1] 1==top[2] 或者top[1]==top[2] ) 28、123按顺序进栈,如果进栈出栈操作可以交替,则不可能得到的出栈序列是 。(数字中间不要加空格)第三章 作业 1、以下算法是利用栈的先进后出特性,编写的将一个十进制的数n,转换为t进制。 请在横线位置补充代码。 //参考代码 void conversion(int n,int t) { stack s; int x,temp=n; initstack(&s); //将n转换为t进制 while(n>0) { x=n%t; push(&s, x); ; } //以下为从栈中依次出栈并输出 while(!isempty(&s)) { pop(&s,&x); if(x<=9) printf("%d",x); //小于10的,按数值打印 else ; //大于10的,按字符打印 } } 2、给出栈的两种存储结构形式名称,在这两种栈的存储结构中如何判别栈满?第三章 栈与队列(二)(总时长:52分54秒) 第7讲 栈与递归(下)(总时长:8分40秒)随堂测验 1、递归算法具有两个特性分别是( ) a、递归算法求解问题,方法简单。 b、递归算法效率高 c、递归算法求解问题,方法复杂 d、递归算法的效率较低 2、下列可以直接用循环结构即可将递归转换为非递归的是( ) a、斐波那契数列问题 b、n!问题 c、汉诺塔问题 d、尾递归问题第8讲 队列的定义与实现(总时长:13分32秒)随堂测验 1、已知带头结点的链队列指针q,则该队列做新元素结点s进队操作的语句是( ) a、q->rear->next=s; q->rear=s; b、s->next=q->front->next; q->front->next=s; c、q->next=s;q=s; d、s->next=q->next ;q->next=s; 2、已知带头结点的链队列指针q,则该非空队列取队头元素操作的语句是( ) a、*x=q->next->data; b、*x=q->front->data; c、*x=q->front->next->data; d、*x=q->rear->data; 3、队列操作的特性是lifo。() 4、队列允许做插入的一端称为队头,允许删除的一端称为队尾( )第9讲 序列的顺序存储(循环队列)(总时长:11分08秒)随堂测验 1、已知循环队列q-> element[maxsize],队头指示器为q->front,队尾指示器为q->rear(指向真实队尾的下一个位置),则该队列中元素个数为:() a、q->rear-q->front b、q->rear-q->front 1 c、(q->rear-q->front maxsize)% maxsize d、(q->rear-q->front 1 maxsize)% maxsize 2、已知循环队列q-> element[maxsize],队头指示器为q->front,队尾指示器为q->rear(指向真实队尾的下一个位置),则该队列为空队列的条件为( ) a、q->rear= =q->front b、q->rear 1= =q->front c、(q->rear 1)% maxsize = =q->front d、(q->rear-1)% maxsize = =q->front 3、已知循环队列q-> element[maxsize],队头指示器为q->front,队尾指示器为q->rear(指向真实队尾的下一个位置),则该队列为满队列的条件为( )(采用少用一个空间的方法) a、q->rear= =q->front b、q->rear 1= =q->front c、(q->rear 1)% maxsize = =q->front d、(q->rear-1)% maxsize = =q->front第10讲 队列的应用(总时长:7分08秒)随堂测验 1、在打印杨辉三角形前n行的算法中,需要申请一个n*n的二维数组存放杨辉三角形n行数据。()第四章 串(总时长:51分45秒) 第1讲 串的基本概念(总时长:8分38秒)随堂测验 1、设s=‘abcd’,s1=‘123’,则执行语句strinsert( s,2,s1)后,s= . a、‘123abcd’ b、‘a123bcd’ c、‘ab123cd’ d、‘abc123d’ 2、设s=‘abcd’,则执行语句strdelete( s,2,2)后,s= . a、‘abcd’ b、‘abc’ c、‘ad’ d、‘a’第2讲 串的顺序存储结构(总时长:21分04秒)随堂测验 1、假设主串s=‘aaabbbababaabb’,模式串t=‘abaa’,用串匹配算法从主串的第6个字符开始模式匹配,需要做 趟匹配,方能找到匹配串。 2、假设主串s=‘aaabbbababaabb’,模式串t=‘abaa’,用串匹配算法从主串的第6个字符开始模式匹配,在第2趟匹配中,要做 次比较。第3讲 串的链式存储及串的应用(总时长:22分03秒)随堂测验 1、用带头结点的单链表来表示串s,则串s 为空串的条件是( ) a、s->next==null b、s==null c、s->next==s d、s->next->next==null第四章单元测验 1、下面关于串的叙述中,不正确的是( )。 a、串是字符的有限序列 b、空串是由空格构成的串 c、串既可以采用顺序存储,也可以采用链式存储 d、模式匹配是串的一种重要运算 2、串的长度是指( )。 a、串中所含不同字符的个数 b、串中所含字符的个数 c、串中所含不同字母的个数 d、串中所含非空格字符的个数 3、strcompare(‘computer’, ‘compare’)的返回值是( )。 a、1 b、100 c、0 d、-1 4、设有两个串s和t,其中t是s的子串,求t在s中首次出现的位置的算法称为 a、联接 b、求子串 c、串比较 d、匹配 5、串是一种特殊的线性表,其特殊性体现在( )。 a、数据元素是一个字符 b、可以顺序存储 c、可以链式存储 d、数据元素可以是多个字符 6、假设空串是任何串的子串,则串s='computer'的子串个数是( )。 a、37 b、36 c、9 d、8 7、substr('datastructure',5,3)的返回值是( )。 a、'astrc' b、'ast' c、'str' d、'tastr' 8、两个串相等的充分必要条件是( )。 a、两个字符串的长度相等 b、两个字符串存储形式相同 c、两个字符串中对应位置上的字符相等 d、两个字符串的长度相等且对应位置上的字符也相等 9、串是一种数据对象特殊的线性表。 10、空格串是指由空格字符所组成的字符串,其长度等于空格个数。 11、组成串的数据元素只能是字符。 12、一个字符串中任意个连续的字符组成的子序列称为该串的子串 。 13、串s=‘i like ds.’的长度是8. 14、串‘computer’和串‘computer’相等。 15、串中的元素可以是任意类型,只要这些元素属于同一数据对象即可。 16、串只能采用顺序存储,不能用链式存储。 17、strindex(‘index of string’,1,‘str’)= 。 18、假设空串是任何串的子串,则串‘string’的子串个数是 。 19、substr('i like university',8,3)的返回值是 。第四章作业 1、下列程序判断字符串s是否是回文串。若是,返回1,否则返回0;如 f("abba")返回1,f("abab")返回0;请将代码补充完整。 typedef struct { char ch[maxlen]; int len; } sstring; int fun(sstring s) { int i=0,j=s.len-1; while(i 2、简述字符串属于线性结构的原因。第五章 数组与广义表(上)(总时长:38分01秒) 第1讲 数组的定义与顺序存储(总时长:19分57秒)随堂测验 1、数组的维数和维度一旦确定,数组中元素的个数就确定了,不能增加不能减少。( ) 2、数组的维数n决定了数组中的元素受n个线性关系的约束。( ) 3、数组如同一般的线性表,可以做的基本运算包括存取指定位置的元素,插入,删除等。( ) 4、假设有6行8列的二维数组a(下标从1开始),每个元素占用6个字节,存储器按字节编址。已知a的基地址为1000,数组a共占用 字节; 5、假设有6行8列的二维数组a(下标从1开始),每个元素占用6个字节,存储器按字节编址。已知a的基地址为1000 ,计算数组a的最后一个元素的地址是 。 6、假设有6行8列的二维数组a(下标从1开始),每个元素占用6个字节,存储器按字节编址。已知a的基地址为1 000 ,计算按行存储时元素a36的地址是 ; 7、假设有6行8列的二维数组a(下标从1开始),每个元素占用6个字节,存储器按字节编址。已知a的基地址为1 000 ,计算按列存储时元素a36的地址是 。第2讲 规律分布特殊矩阵的压缩存储(总时长:18分04秒)随堂测验 1、已知一个n行n列的带状矩阵a,其中非零元素的个数是( ) a、3n b、3n-2 c、3n 2 d、 2、若将n阶上三角矩阵a按列优先雅朵存放在一维数组b中,第一个非零元素存放在b[0]中,则非零元素aij存放在b[k]中,则k=( ) a、 b、 c、 d、 3、所谓的n阶下三角矩阵a是指当i 4、所谓的n阶(n>3)三对角矩阵(带状矩阵)是指非零元素只出现在矩阵的两条对角线上。( )第五章单元测验1 1、下面说法正确的是( )。 a、二维数组中的元素只能按行存储 b、数组的下标必须从0开始 c、数组可以采用顺序存储,也可以采用链式存储 d、数组的基本操作是存取某个下标的元素 2、数组a[0..4,-1..2,2..7]中含有元素的个数( )。 a、80 b、60 c、120 d、56 3、若n阶三对角矩阵a按照行序为主序方式,将所有非零元素依次存放在一个一维数组b中,则该三对角矩阵在b中至少占用了( )个单元。 a、3n b、3n-2 c、3n 2 d、n*n 4、设n阶下三角矩阵a已压缩到一维数组b[1..n*(n 1)/2]中,若按行为主序存储,则a[i,j]对应的b中存储位置为 ( )。(下标均从1 开始) a、i*(i 1)/2 j -1 b、i*(i-1)/2 j c、i*(i-1)/2 j-1 d、i*(i 1)/2 j 5、一维数组是线性结构,但二维数组不是线性结构。 6、数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。 7、数组的存储结构采用 存储方式。(填顺序或链式) 8、数组a[1…6,1…8]中,共有 个元素。 9、数组a[1…6,1…8],若按行存储,首地址是1000,每个元素占4个存储单元,则a[4,7]的存储地址是 。 10、设数组a[1..30,1..20]的基地址为2000,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[16,17]的存储地址为 。第五章 数组与广义表(下)(总时长:57分05秒) 第3讲 稀疏矩阵的压缩存储(上)(总时长:17分54秒)随堂测验 1、对稀疏矩阵进行压缩存储的目的是( ) a、便于进行矩阵运算 b、便于输入和输出 c、节省存储空间 d、减低运算的时间复杂度 2、稀疏矩阵压缩存储后,不会失去( )功能 输入输出 a、顺序存储 b、随机存取 c、输入输出 d、输入输出第4讲 稀疏矩阵的压缩存储(下)(总时长:19分16秒)随堂测验 1、对于一个m行n列的稀疏矩阵中有len个非零元素,则用十字链表存储时,需要( )个头指针。 2、对于一个m行n列的稀疏矩阵中有len个非零元素,则用十字链表存储时,需要( )个三元组结点。第5讲 广义表及本章小结(总时长:19分55秒)随堂测验 1、任意一个广义表都可以表示为由表头和表尾构成( )。 2、非空的广义表的表尾可能是单个元素也可能是表元素( )。 3、已知广义表l=(( x,y,z), a,( u,t,w)),则head( head( tail( tail( l))))的结果是( )。 4、已知数组m[ 1 ..10 ,-1 ..6 ,0 ..3 ], )若数组以行序为主序存储,起始地址为1 000 ,且每个数据元素占用3个存储单元,则m[ 2 ,4 ,2 ]的地址为( )第五章单元测验2 1、下面说法不正确的是( )。 a、广义表难以用顺序存储结构 b、广义表的表头总是一个广义表 c、广义表的数据元素不属于同一数据对象 d、广义表的表尾总是一个广义表 2、广义表a=( a, ( b ), ( ( c ) ) ) ,那么head(tail(tail(a)))是( ) a、( ( c ) ) b、( ( ( c ) ) ) c、( ( b ), ( ( c ) ) ) d、( c ) 3、已知广义表gl=((a,b,c),(d,e,f)),运用head和tail函数取出gl中原子e的运算是( )。 a、head(tail(gl)) b、head(tail(tail(head(gl)))) c、head(tail(head(tail(gl)))) d、tail(head(gl)) 4、对稀疏矩阵进行压缩存储目的是( )。 a、便于进行矩阵运算 b、便于输入和输出 c、节省存储空间 d、降低运算的时间复杂度 5、广义表的取表头操作是返回表中第一个元素,取表尾是返回广义表中最后一个元素。 6、广义表的取表头运算是取表中第一个元素,因此其结果一定是单个元素。 7、广义表的取表尾运算,其结果一定是个表。 8、稀疏矩阵压缩存储后,就无法进行随机存取了。 9、三维数组a[4][5][6](下标从1开始计,a有4*5*6个元素),每个元素的长度是2,则a[2][3][4]的地址是 。 10、三维数组a[-1…3,0…4,1…5]中元素个数有 个。第六章 树和二叉树(上)(总时长:48分02秒) 第1讲 树的基本概念(总时长:17分07秒)随堂测验 1、树最适合用来表示( ) a、有序数据元素 b、无序数据元素 c、元素之间具有分支层次关系的数据 d、元素之间无联系的数据 2、若一棵树的广义表法表示为:a(b(e,f),c(g(h,i,j,k),l),d(m(n))) 则该树的度为( ); 3、若一棵树的广义表法表示为:a(b(e,f),c(g(h,i,j,k),l),d(m(n))) 该树的深度为( ); 4、若一棵树的广义表法表示为:a(b(e,f),c(g(h,i,j,k),l),d(m(n))) 该树中叶子结点的个数为:( )第2讲 二叉树(总时长:18分04秒)随堂测验 1、按照二叉树的定义,具有3个结点的二叉树有( )种 a、3 b、4 c、5 d、6 2、若一棵二叉树有10个度为2的结点,5个度为1的结点,则度为0的结点有( )个。 a、9 b、11 c、15 d、不确定 3、一个高度为h的完全二叉树至少有( )个结点 a、 b、 c、 d、 4、二叉树就是结点度不大于2的树。() 5、不存在这样的二叉树:它有n个度为0的结点,n-1个度为1的结点,n-2个度为2的结点。( ) 6、具有n个结点的二叉树采用二叉链表存储结构,共有( )非空的指针域。 7、拥有100个结点的完全二叉树的最大层数是( )第3讲 二叉树的遍历(总时长:12分51秒)随堂测验 1、某二叉树的先序序列和中序序列正好相同,则该二叉树一定是 ( ) a、空树或只有一个结点 b、完全二叉树 c、每个结点都没有左子 d、高度等于其结点数 2、在二叉树中,p所指向的结点为度为1的分支点的条件是( ) a、p->lchild= =null ||p->rchild= =null b、!( p->lchild! =null &&p->rchild!=null) c、!(p->lchild= =null &&p->rchild= =null) d、(p->lchild= =null &&p->rchild! =null)|| (p->lchild! =null &&p->rchild= =null) 3、已知二叉树的先序和后序遍历序列可以唯一确定该二叉树。( )第六章 单元测验1 1、已知一算术表达式的中缀形式为 a-b/c d*e,前缀形式为 -a/bc*de,其后缀形式为( )。 a、abcde/-* b、ab/c-d*e c、abc/-de* d、a-bc/de* 2、有关二叉树下列说法正确的是( )。 a、二叉树中每个结点的度都为2 b、一棵二叉树的度可以小于2 c、二叉树中至少有一个结点的度为2 d、二叉树中任何一个结点的度都为2 3、在一棵高度为k的满二叉树中,结点总数为( )。 a、-1 b、2k c、 d、 4、某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为( )。 a、59 b、60 c、61 d、不确定 5、100个结点的完全二叉树采用顺序存储,从1开始按层次编号,则编号最小的叶子结点的编号应该是( )。 a、100 b、49 c、50 d、51 6、完全二叉树一定存在度为1的结点。 7、完全二叉树中,若一个结点没有左孩子,则它必是叶子。 8、二叉树只能用二叉链表表示。 9、树形结构中,每个元素都有一个前驱,0个或多个后继。 10、由3 个结点可以构造出 种形态不同的无序树。 11、由3 个结点可以构造出 种形态不同的二叉树。 12、对任意一棵有n个结点的树,这n个结点的度之和为 。 13、高度为7的完全二叉树,最少有 个结点。第六章 树和二叉树(下)(总时长:112分28秒) 第4讲 遍历算法应用(总时长:19分50秒)随堂测验 1、设二叉树采用二叉链表方式存储,root指向根结点,r所指结点为二叉树中任一给定的结点。则可以通过改写( )算法,求出从根结点到结点r之间的路径。 a、先序遍历 b、中序遍历 c、后序遍历 d、层次遍历 2、已知二叉树用二叉链表存储,则若实现二叉树实现左右子树交换,可以借助改写( )遍历算法实现。 a、先序遍历 b、中序遍历 c、后序遍历 d、以上三种都可以第5讲 基于栈的递归消除(总时长:14分27秒)随堂测验 1、在中序遍历非递归算法中,在进入子树进行访问前,需要在自定义栈中保存( ) a、本层根结点指针 b、本层根结点的右孩子指针 c、本层根结点的左孩子指针 d、无需保留任何信息第6讲 线索二叉树(总时长:17分35秒)随堂测验 1、引入线索二叉树的目的是( ) a、加快查找指定遍历过程中结点的直接前驱和直接后继 b、为了能在二叉树中方便地插入和删除结点 c、为了方便找到结点的双亲 d、使二叉树遍历结果唯一 2、若判断线索二叉树中的p结点有右孩子结点则下列()表达式为真。 a、p!=null b、p->rchild!=null c、p->rtag= =0 d、p->rtag= =1 3、若线索二叉树中的p结点没有左孩子结点则下列( )表达式为真。 a、p==null b、p->lchild==null c、p->ltag= =0 d、p->ltag= =1第7讲 由遍历序列确定的二叉树(总时长:7分48秒)随堂测验 1、一棵二叉树的后序序列是:cbefda,中序序列是:cbaedf,则该二叉树的先序序列是( ) a、abcdef b、abcedf c、abdefc d、abfecd 2、一棵二叉树的先序序列是:cedba,中序序列是:debac ,则该二叉树的后序序列是( ) a、dabec b、dcbae c、deabc d、cbade第8讲 树、森林和二叉树的关系(总时长:17分33秒)随堂测验 1、如图所示的二叉树bt是由森林t1转换而来的二叉树,那么森林t1中有( )叶子结点。 a、4 b、5 c、6 d、7 2、与树等价的二叉树,根没有( )子树。第9讲 哈夫曼树及其应用——哈夫曼树(总时长:12分46秒)随堂测验 1、有13个叶子结点的哈夫曼树,该树中结点总数为( ) a、13 b、26 c、12 d、25 2、在哈夫曼树中,权值相同的叶子点一定在同一层上。( ) 3、在哈夫曼树中,权值较大的叶子点一般离根比较近。( ) 4、若以{4,5,6,7,8}作为叶子点构造哈夫曼树,则其带全路径长度为( )第10讲 哈夫曼树及其应用——哈夫曼编码(总时长:14分35秒)随堂测验 1、在哈夫曼编码中,当两个字符出现的频率相等时,则两个字符的哈夫曼编码也相同。( )第六章 单元测验2 1、已知一棵二叉树的前序遍历结果为abcdef,中序遍历结果为cbaedf,则后序遍历的结果为( )。 a、cbefda b、fedcba c、cbedfa d、不确定 2、线索二叉树中,判断p所指向的结点为叶子结点的条件是( )。 a、p->lc==null && p->rc==null b、p->ltag==1 c、p->lc==null && p->ltag==0 d、p->ltag==1 && p->rtag==1 3、以下属于前缀编码的是( )。 a、{0,1,01,010,110} b、{00,01,10,11,101} c、{0,1101,1110,1100,1111} d、{01,00,10,001,110,101} 4、在下列存储形式中,( )不是树的存储形式。 a、双亲表示法 b、孩子链表表示法 c、孩子-兄弟表示法 d、顺序存储表示法 5、对二叉树中的结点进行编号,要求根结点的编号最小,左孩子结点编号比右孩子结点编号小。则应该采用( )遍历方法对其进行编号。 a、先序 b、中序 c、后序 d、层次 6、已知某二叉树的后序遍历序列是cefdba,中序遍历序列是cbedfa。与该二叉树对应的树或森林中,叶子的数目是( )个。 a、1 b、2 c、3 d、4 7、某二叉树中有60个叶子结点,则该二叉树中度为2的结点个数为( )。 a、59 b、60 c、61 d、不一定 8、哈夫曼树的带权路径长度等于其中所有结点的带权路径之和。 9、给定二叉树的先序、中序和后序遍历序列中的两个,就可以唯一确定一棵二叉树。 10、在叶子数目和权值相同的所有二叉树中,带权路径长度最小的树一定是哈夫曼树。 11、将一棵树转成二叉树,根结点一定没有右子树。 12、一棵哈夫曼树中不存在度为1的结点。 13、在叶子数目和权值相同的所有二叉树中,带权路径长度最小的树一定是完全二叉树。 14、先序线索二叉树中,某结点的后继一定在左子树上。 15、有10个叶子结点的哈夫曼树,总结点个数是 。 16、将一棵树转换为二叉树时,遵循的规则是左孩子、 。 17、用权值{1,2,3,4,5}构造一棵哈夫曼树,则该树的带权路径长度为 。 18、假设t是一棵高度为5的二叉树,t中只有度为0和度为2的结点,那么t树最少应该有 个结点。 19、树的后根遍历,相当于对应二叉树的 遍历。 20、含有100个结点的树有 条边。第七章 图(总时长:102分26秒) 第1讲 图的基本概念(总时长:12分20秒)随堂测验 1、一个有n个顶点的有向图最多有 边 a、n b、n(n-1) c、n(n-1)/2 d、2n 2、具有n个顶点的有向图至少应有 弧才能确保是一个强连通图。 a、n-1 b、n c、n(n-1) d、n(n-1)/2 3、在一个无向图中,所有顶点的度之和等于边条数的 倍。 4、具有6个顶点的无向图至少应有 条边才能确保是一个连通图。 5、一个有向图g中所有顶点的入度之和是所有顶点出度之和的 倍。第2讲 图的存储结构(总时长:12分28秒)随堂测验 1、对于一个n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小为() a、n b、n(n-1) c、 d、 2、有向图的邻接矩阵一定是对称矩阵。() 3、用邻接矩阵存储无向图g时,其第i行中1的个数与第i列中1的个数相等。() 4、对于一个有n个顶点,e条边的无向图,若采用邻接表表示,则表头结点数组的大小为 。 5、对于一个有n个顶点,e条边的无向图,若采用邻接表表示,则边结点有 个。 6、用邻接矩阵存储有向图g时,其第i列的所有元素之和等于该顶点的 。第3讲 图的遍历(总时长:17分05秒)随堂测验 1、如果从一个无向图的任意一个顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是( ) a、完全图 b、连通图 c、有回路 d、森林 2、图的深度优先遍历类似于树的( )遍历 a、先序遍历 b、中序遍历 c、后序遍历 d、层次遍历 3、图的广度优先遍历类似于树的( )遍历 a、先序遍历 b、中序遍历 c、后序遍历 d、层次遍历第4讲 图的连通性(总时长:11分36秒)随堂测验 1、任何一个连通图( )生成树。 a、只有一棵 b、有一棵或多棵 c、一定有多棵 d、可能不存在 2、prim算法适合求( )的最小生成树。 a、边稠密连通网 b、边稀疏连通网 c、边稠密无向网 d、边稀疏无向网 3、对于n个顶点的连通图g来说,如果其中的某个子图有n个顶点,n-1条边,则该子图一定是g的生成树。( ) 4、对于n个顶点的连通图而言,它的生成树一定有 条边。第5讲 有向无环图应用——拓扑排序(总时长:12分37秒)随堂测验 1、若一个有向图中的顶点不能排成一个拓扑序列,则可断定该有向图( ) a、是个有向无环图 b、是个含有回路的有向图 c、含有多个入度为0的顶点 d、是个强连通图 2、任何有向无环图的顶点都可以排成拓扑排序序列,且拓扑排序序列唯一( ) 3、在aov网中,顶点表示 。第6讲 有向无环图应用——关键路径(总时长:15分21秒)随堂测验 1、关键路径是aoe网中( ) a、从源点到汇点的最长路径 b、从源点到汇点的最短路径 c、最长回路 d、最短回路 2、关键活动若不能按期完成就会影响整个工程的完成时间,若某些关键活动能提前完成,将可能使整个工程提前完成。() 3、在aoe网中,关键路径上的活动称为 。第7讲 最短路径(总时长:16分28秒)随堂测验 1、求最短路径的dijkstra算法的时间复杂度为( ) n为图中顶点数,e为图中边数。 a、o(n) b、o(n e) c、o() d、o(ne) 2、求最短路径的dijkstra算法不适用于有回路的有向网( )第七章 单元测验 1、在一个图中,所有顶点的度之和是所有边数的 ( )倍。 a、1/2 b、1 c、2 d、3 2、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。 a、1/2 b、1 c、2 d、4 3、一个有n个顶点的无向图最多有( )条边。 a、n b、n*(n-1) c、( n*(n-1) ) / 2 d、2*n 4、在一个具有n个顶点的无向图中,要连通全部顶点至少需要 ( )条边。 a、n b、n ` c、n-1 d、n/2 5、对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是( )。 a、n b、n*n c、2*(n-1) d、n-1 6、对于一个具有n个顶点和e条边的无向图,若采用邻接表示,邻接表中的结点总数是( )。 a、e/2 b、2 c、2*e d、n e 7、以下说法错误的是( )。 a、用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中结点个数有关,而与图的边数无关。 b、邻接表只能用于有向图的存储,而邻接矩阵对于有向图和无向图的存储都适用。 c、存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的下(或上)三角部分就可以了 d、用邻接矩阵m表示图,判定任意两个结点vi和vj之间是否有长度为n的路径相连,则只要检查m的n次方后,第 i行第j列的元素是否为0即可。 8、已知一个图的邻接矩阵表示,删除所有从第i个顶点出发的方法是( )。 a、将矩阵第i行删除,后序行上移 b、将矩阵第i列删除,后序列左移 c、将矩阵第i行上的元素全部置0 d、将矩阵第i列上的元素全部置0 9、某图的邻接表存储结构如下图所示, 则从6号点出发,深度优先遍历的序列是( ) a、6-5-2-1-4-3 b、6-5-1-2-4-3 c、6-5-1-4-3-2 d、6-5-2-1-4-3 10、某图的邻接矩阵存储结构如下图所示, 则从6号点出发,广度优先遍历的序列是( ) a、6-1-2-5-4-3 b、6-1-2-4-5-3 c、6-5-1-4-3-2 d、6-5-2-1-4-3 11、关键路径上的活动都是关键活动,它们是否按时完成会影响工期。 12、求稀疏图的最小生成树,用克鲁斯卡尔算法来求解较好。 13、求稠密图的最小生成树,用普里姆算法来求解较好。 14、迪杰斯特拉算法求最短路径时,是按照路径长度递增的顺序求解的。 15、一个有向图的拓扑排序只有一个。 16、每一个有向图肯定至少有一个拓扑排序。 17、具有6个顶点的无向图至少应有6条边才能确保是一个连通图。 18、非关键活动,可以无限期延迟。 19、图的存储结构主要有邻接矩阵和________两种。 20、对具有n个顶点的图其生成树有且仅有________条边。 21、在有向图的邻接矩阵上,第i行中的非零且非无穷元素个数是第i个结点的 。 22、如果n个顶点的图是一个环,则它有 棵生成树。 23、关键路径是从源点到汇点的 路径。 24、稠密图采用 存储较省空间 25、稀疏图采用 存储较省空间。第八章 查找(总时长:73分53秒) 第1讲 查找的基本概念(总时长:10分31秒)随堂测验 1、采用顺序查找法查找长度为n的线性表时,平均查找长度为 。 a、n b、 c、 d、 2、通常将 作为衡量一个查找算法效率优劣的标准。 a、平均查找长度 b、比较次数 c、wpl d、asl 3、顺序查找方法只能在顺序存储结构上进行。( ) 4、顺序查找含n个元素的顺序表,若查找成功,则比较关键字的次数最多为 次。 5、顺序查找含n个元素的顺序表,若查找不成功,则比较关键字的次数为 次。第2讲 基于线性表的查找法(总时长:10分44秒)随堂测验 1、对列表进行折半查找时,要求列表必须 。 a、顺序存储 b、链式存储 c、顺序存储且元素按关键字有序存储 d、链式存储且元素按关键字有序存储 2、当采用分块查找时,数据的组织方式要求 。 a、数据分成若干块,每块内元素有序 b、数据分成若干块,每块内元素不必有序,但块间必须有序,且每块内最大(或最小)的数据组成索引块; c、数据分成若干块 d、数据分成若干块,每块(除最后一块外)中元素个数相等。 3、有一个有序表{1,3,9,12,32,41,45,62,75,77,82,95,99}当采用折半查找法查找关键字为82的元素时,需经过 次比较后查找成功。 a、1 b、2 c、4 d、8 4、折半查找可以在有序的双向链表上进行。( )第3讲 树表式查找方法——二叉排序树(总时长:12分08秒)随堂测验 1、如图所示的二叉排序树,,起查找成功时的平均查找长度是 。 a、 b、 c、 d、 2、在一棵平衡二叉树中,每个结点的平衡因子的取值范围是 。 a、-1——1 b、-2——2 c、1——2 d、0——1 3、查找效率最高的二叉排序树是平衡二叉排序树。( ) 4、在二叉排序树中新插入的结点总是作为叶子结点来插入的。( ) 5、在二叉排序树中新插入的结点总是处于最底层。( ) 6、每个结点的关键字都比左孩子关键字大,比右孩子关键字小,这样的二叉树都是二叉排序树。( )第4讲 计算式查找法——哈希表的构造(总时长:16分27秒)随堂测验 1、将10个元素散列到10000000个单元的哈希表中,则 产生冲突。 a、一定会 b、一定不会 c、仍可能会 d、以上都不对 2、在哈希查找中,可用 来处理冲突。 a、除留余数法 b、数字分析法 c、线性探测散列法 d、数字分析法 3、设哈希表长度m=12,哈希函数为h(key)=key mod 11.表中已经有4个结点分别为h(15)=4,h(38)=5, h(61)=6,h(84)=7,其余地址为空。如果用二次探测再散列处理冲突,则关键字为49的结点地址为 。 a、8 b、3 c、5 d、9 4、设哈希表长度m=14,哈希函数h(key)=key mod p,则p最好取 。第5讲 哈希法的性能分析(总时长:9分02秒)随堂测验 1、若采用链地址法构造哈希表并处理冲突,哈希函数为h(key)=key mod 17,则需要 个链表。 a、17 b、16 c、13 d、不确定 2、假设有k个关键字互为同义词,若用线性探测再散列法将这k个关键字存入哈希表中,至少要进行 次定址。 a、k-1 b、k c、k 1 d、k(k 1)/2 3、哈希表的查找性能 。 a、与处理冲突的方法有关而与表的长度无关 b、与处理冲突的方法无关而与表的长度有关 c、与处理冲突的方法无关而与装填因子有关 d、与处理冲突的方法有关,与装填因子有关第八章单元测验 1、关于折半查找,以下说法正确的是 ( ) 。 a、待查找表必须有序,且只能以顺序方式存储 b、待查找表必须有序,而且必须从小到大排列 c、待查找表必须有序,可以顺序方式存储,也可以链表方式存储 d、待查找表必须有序且表中数据必须是整型 2、具有12个关键字的有序表,折半查找的平均查找长度( )。 a、数据分成若干块,块内数据不必有序,但块间必须有序 b、数据分成大小相等的若干块,块内数据有序 c、数据分成若干块,块内数据必须有序,块间不必有序 d、数据分成若干块,每块(除最后一块外)中数据个数需相同 3、关于哈希查找,以下说法不正确的是( ) 。 a、哈希查找中,记录的存储地址是计算出来的,因而不需要比较 b、装填因子越大,越容易产生冲突 c、链地址法和线性探测再散列都是解决冲突的方法 d、哈希查找有两个关键问题:哈希函数和处理冲突的方法 4、别以下列序列构造二叉排序树,以下哪一个和其他三个不同( ) 。 a、(90,100,65,25,87,85,110,107) b、(90,65,110,100,107,87,85,25) c、(90,110,65,25,87,100,107,85) d、(90,65,25,110,100,107,87,85) 5、不同关键字序列,构造的二叉排序树的平均查找长度都相同。 6、有n个元素存放在一维数组a[1..n]中,在进行顺序查找时,这n个数的不同排列,其平均查找长度不同。 7、如果根结点的左子树和右子树高度差不超过1,则该二叉树是平衡二叉排序树。 8、在二叉树排序树中插入一个新结点,总是插入到某个叶子结点的下面,从而成为新的叶子结点。 9、同样的数据集合,二叉排序树的查找性能与按关键字的输入序列建立的二叉排序树形态有关系。 10、对长度为49的顺序表,在等概率情况下,查找成功时的平。均查找长度为 。(请不要用分数表示) 11、如果按关键码值递增的顺序依次将99个关键码值插入到二叉排序树中,则对这样的二叉排序树检索时,在等概率情况下查找成功时的平均查找长度asl为 。 (请不要用分数表示) 12、对关键字序列{3,5,7,10,12,13,18,22,34,45}采用折半查找。则查找18,需要进行的关键字的比较次数是 次。(折半时,下标下取整) 13、对关键字序列{13,25,17,10,12,8,22,4,45,30}构造二叉排序树,查找概率相同的情况下,查找成功的平均查找长度为 。(请不要用分数表示) 14、哈希表长度为16,哈希函数采用除留余数法,即h(k)=k%p,那么p的取值应该是 。第八章作业 1、对8个有序元素进行折半查找,计算等概率情况下查找成功与不成功的asl。 2、已知待散列的线性表为(36,15,40,63,22),散列用的一维地址空间为[0..6],假定选用的散列函数是h(k)= k mod 7,若发生冲突采用线性探查法处理,试: (1)计算出每一个元素的散列地址并在下图中填写出散列表: ` 0 1 2 3 4 5 6 (2)求出在查找每一个元素概率相等情况下的查找成功和查找不成功时的平均查找长度。第九章 内部排序(总时长:97分05秒) 第2讲 插入类排序(总时长:14分05秒)随堂测验 1、对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后的结果为:{9,15,7,8,20,-1,4},则采用的是( )排序方法。 a、简单选择排序 b、冒泡排序 c、直接插入排序 d、堆排序 2、下列排序方法中,( )在初始序列已基本有序的情况下,排序效率最高。 a、归并排序 b、直接插入排序 c、快速排序 d、堆排序 3、用希尔排序对{q,h,c,y,q,a,m,s,r,d,f,x},进行排序,第一趟的增量是4,则第一趟排序后的结果是( ) a、{h,q, c,y,q,a,m,s,r,d,f,x} b、{q,a,c,s,q,d,f,x,r,h,m,y} c、{h,c,q,q,a,m,s,r,d,f,x,y} d、{ a,h,c,y,q,q,m,s,r,d,f,x} 4、设用希尔排序对{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的增量序列依次是4,2,1,则排序需要进行 趟。第3讲 交换类排序(总时长:12分01秒)随堂测验 1、快速排序在( )情况下最不利于发挥其长处。 a、要排序的数据量太大 b、要排序的数据中含有多个相同的值 c、要排序的数据个数是奇数 d、要排序的数据基本有序 2、以下( )法在数据基本有序时效率最好。 a、快速排序 b、冒泡排序 c、堆排序 d、希尔排序 3、对关键字{28,16,32,12,60,2,5,72}进行快速排序,第一趟以28为枢轴产生的划分结果为( ) a、(2,5,12,16)28(60,32,72) b、(5,16,2,12)28(60,32,72) c、(2,16,12,5)28(60,32,72) d、(5,16,2,12)28(32,60,72) 4、在直接插入排序、希尔排序、简单选择排序、快速排序、堆排序和归并排序中,平均比较次数最少的排序方法是第4讲 选择类排序(1)(总时长:9分16秒)随堂测验 1、对给定的数据集{84,47,25,15,21}排序,进行2趟简单选择排序的结果是( ) a、{15,21,25,84,47} b、{25,47,84,15,21} c、{21,47,25,15,84} d、{25,15,21,47,84} 2、在以下的排序方法中,关键字比较的次数与记录的初始排列顺序无关的是( ) a、希尔排序 b、冒泡排序 c、直接插入排序 d、简单选择排序 3、10个元素进行简单选择排序,需要做 趟排序才能得到有序序列。第5讲 选择类排序(2)——堆排序(总时长:19分01秒)随堂测验 1、以下序列是堆的是( ) a、{75,65,30,15,25,45,20,10} b、{75,65,45,10,30,25,20,15} c、{75,45,65,30,15,25,20,10} d、{75,45,65,10,25,30,20,15} 2、设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好用( )排序法。 a、冒泡排序 b、快速排序 c、堆排序 d、基数排序 3、以下序列是堆的是( ) a、{100,85,98,77,80,60,82,40,20,10,66} b、{100,98,85,82,80,77,66,60,40,20,10} c、{10,20,40,60,66,77,80,82,85,98,100} d、{100,85,40,77,80,60,66,98,82,10,20} 4、对于待排序的数据元素集{12,13,23,18,60,15,7,20,52,100},用筛选法建初堆时,必须从值为 的关键字开始。第6讲 归并排序(总时长:7分20秒)随堂测验 1、下列排序方法中,辅助空间为o(n)的是( ) a、希尔排序 b、冒泡排序 c、堆排序 d、归并排序 2、将两个各有m个元素的有序表归并成一个有序表,其最少的比较次数是( ) a、m b、2m-1 c、2m d、m-1第7讲 分配类排序(总时长:12分56秒)随堂测验 1、在以下的排序方法中,( )不需要进行关键字的比较。 a、快速排序 b、归并排序 c、基数排序 d、堆排序 2、以下排序方法中,稳定的排序是( ) a、堆排序 b、快速排序 c、链式基数排序 d、希尔排序第九章 单元测验 1、n个记录采用冒泡排序,最好情况下,所需关键字的比较次数是( )。 a、n b、n-1 c、n*(n-1) d、nlogn 2、排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置,这是( )排序方法的基本思想。 a、堆排序 b、直接插入排序 c、快速排序 d、冒泡排序 3、设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( )方法可以达到此目的。 a、快速排序 b、堆排序 c、归并排序 d、基数排序 4、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是( )。 a、直接插入排序 b、冒泡排序 c、快速排序 d、简单选择排序 5、设一组初始记录关键字序列为(45,80,55,30,42,95),则以第一个关键字45为基准而得到的一趟快速排序结果是( )。 a、30,42,45,55,80,95 b、42,30,45,55,80,95 c、30,42,45,55,80,95 d、42,30,45,95,55,80 6、在待排序的元素序列基本有序的前提下,效率最高的排序方法是( ) a、插入排序 b、选择排序 c、快速排序 d、归并排序 7、将关键字(46,79,56,33,40,90)按从小到大排列,则利用堆排序的方法建立的初始堆为( ) 。 a、79,46,56,33,40,90 b、90,79,56,46,40,38 c、90,79,56,33,40,46 d、90,56,79,40,46,33 8、一趟排序结束后不一定能够选出一个元素放在其最终位置上的是( )。 a、堆排序 b、冒泡排序 c、直接插入排序 d、快速排序 9、快速排序在下列( )情况下最易发挥其长处。 a、被排序的数据元素中含有多个相同的关键字 b、被排序的数据元素已基本有序 c、被排序的数据元素完全无序 d、被排序的数据元素中的最大值和最小值相差悬殊 10、下面( )关键字序列符合堆的定义。 a、{96, 83, 27, 38, 11, 40} b、{12, 36, 24, 85, 47, 30, 53, 91} c、{12, 34, 6, 54, 23, 46} d、{98, 86, 100, 45, 67, 34, 20} 11、以下是不稳定的排序算法是( )。 a、直接插入排序 b、冒泡排序 c、堆排序 d、归并排序 12、最好和最坏时间复杂度均为o(nlogn)且稳定的排序方法是( )。 a、快速排序 b、堆排序 c、基数排序 d、归并排序 13、以下是稳定的排序算法的是( )。 a、直接插入排序 b、希尔排序 c、简单选择排序 d、冒泡排序 14、以下是不稳定的排序算法的是( )。 a、归并排序 b、希尔排序 c、简单选择排序 d、堆排序 15、以下排序算法中,关键字的比较次数与元素初始序列无关的是( )。 a、直接插入排序 b、冒泡排序 c、简单选择排序 d、堆排序 16、内部排序要求数据元素全部在内存完成排序,且顺序存储。 17、所有的排序算法的比较次数与初始序列无关。 18、所有排序算法中,快速排序的时间复杂度和空间复杂度都最小。 19、快速排序的最坏情况,可以通过适当选择中轴元素避免。 20、排序的稳定性是指,关键字相同的记录,排序前后其领先关系不发生改变。 21、冒泡排序在最好情况下的时间复杂度是o(n)。 22、简单选择排序和堆排序性能不受初始序列顺序的影响。 23、直接插入排序、简单选择排序、冒泡排序和快速排序中,其时间复杂度为o(n*n),关键字比较次数与待排序记录的初始排列顺序无关且排序不稳定,则该排序算法是 。 24、希尔排序法、快速排序法、堆排序法和二路归并排序法四种排序法中,要求辅助空间最多的是 。 25、快速排序、归并排序、堆排序、基数排序中,适合记录个数很大,但待排序关键字位数很少的排序算法是 。 26、对关键字集合{46,79,56,33,40,90}按冒泡排序,则一趟排序后的结果为 。(请只用一个空格隔开各关键字,不必加大括号)期末考试 总测验客观试题 1、长度为n的顺序表的第i个位置上插入一个元素,i的合理取值范围是( )。 a、任意正整数 b、i≥0 c、1≤i≤n d、1≤i≤n 1 2、已知l是带表头结点的单链表的头指针,摘除首元结点的语句是( )。 a、l=l->next; b、l->next=l->next->next; c、l=l->next->next; d、l->next=l; 3、若n阶三对角矩阵a按照行序为主序方式,将所有非零元素依次存放在一个一维数组b中,则该三对角矩阵在b中至少占用了( )个单元。 a、 b、3n-2 c、3n 2 d、3n 4、长度为n的数组空间中,存放着一个循环队列,该队列的队头和队尾指示器分别为front和rear,则该队列中的元素个数为( )。 a、rear-front b、(rear-front)%n c、(rear-front n)%n d、(rear-front 1)%n 5、向一个栈顶指针为top的带头结点的链栈中插入一个s所指的结点,应执行( )。 a、top->next=s; b、s->next=top->next; top->next=s; c、s->next=top; top=s; d、s->next=top; top=top->next; 6、以下哪一个不是队列的基本运算( )。 a、在队尾插入一个新元素 b、判断一个队列是否为空 c、读取队头元素的值 d、从队列中删除第i个元素 7、广义表a=( a, ( b ), ( ( c ) ) ) ,那么head(tail(tail(a)))是( )。 a、( ( c ) ) b、( ( ( c ) ) ) c、( c ) d、( ( b ), ( ( c ) ) ) 8、一棵有n个结点的树,所有结点的度之和为( )。 a、n-1 b、n c、n 1 d、2n 9、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是( )。 a、选择排序 b、希尔排序 c、归并排序 d、快速排序 10、设某有向图中有n个顶点,则该有向图对应的邻接表中有( )个表头结点。 a、n-1 b、n c、n 1 d、2n-1 11、100个结点的完全二叉树,其高度为( )。 a、5 b、6 c、7 d、8 12、100个结点的完全二叉树采用顺序存储,从1开始按层次编号,则编号最小的叶子结点的编号应该是( )。 a、100 b、49 c、50 d、51 13、己知有序表为(13,19,24,35,47,50,62),当用二分法查找19时,需( )次比较查找成功。 a、1 b、2 c、3 d、4 14、设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( )方法可以达到此目的。 a、快速排序 b、堆排序 c、归并排序 d、基数排序 15、排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置。这是( )排序方法的基本思想。 a、堆排序 b、直接插入排序 c、快速排序 d、冒泡排序 16、已知一个有向图的邻接矩阵表示,要删除所有从第i个结点发出的弧,应该( )。 a、将邻接矩阵的第i行删除 b、将邻接矩阵的第i行元素全部置为0 c、将邻接矩阵的第i列删除 d、将邻接矩阵的第i列元素全部置为0 17、设指针变量p指向单链表中结点a的直接前驱,若删除单链表中结点a,则需要修改指针的操作序列为( )。 a、q=p->next;p->next=q->next;free(q); b、q=p->next; p->next=q->next; c、p->next=p-> next->next; d、q=p->next;p->data=q->data;free(q); 18、在括号匹配算法中,当正扫描的符号是右括号,此时的栈是空栈,则()。 a、右括号进栈; b、继续向下扫描; c、取出栈顶元素做匹配检查; d、此时出现右括号多了的不匹配现象。 19、已知循环队列q-> element[maxsize],队头指示器为q->front,队尾指示器为q->rear(指向真实队尾的下一个位置),则该队列为满队列的条件为( )(采用少用一个空间的方法) a、q->rear= =q->front b、q->rear 1= =q->front c、(q->rear 1)% maxsize = =q->front d、(q->rear-1)% maxsize = =q->front 20、设s='abcd',则执行语句strdelete( s,2,2)后,s= a、'abcd' b、'abc' c、'ad' d、'a' 21、若将n阶上三角矩阵a[n][n]按列优先压缩存放在一维数组b中,第一个非零元素a[1][1]存放在b[1]中,则非零元素aij存放在b[k]中,则k=( ) a、i(i 1)/2 j b、i(i-1)/2 j-1 c、j(j-1)/2 i-1 d、j(j-1)/2 i 22、若一棵二叉树有11个度为2的结点,5个度为1的结点,则度为0的结点有( )个。 a、9 b、10 c、15 d、12 23、具有n个顶点的有向图至少应有 弧才能确保是一个强连通图。 a、n-1 b、n c、n(n-1) d、n(n-1)/2 24、假设有k个关键字互为同义词,若用线性探测再散列法将这k个关键字存入哈希表中,至少要进行 次定址。 a、k-1 b、k c、k 1 d、k(k 1)/2 25、高度为h的二叉树中只存在度为0和度为2的结点,则该二叉树中至少有( )结点。 a、h b、2h 1 c、2h-1 d、 26、用希尔排序对{q,h,c,y,q,a,m,s,r,d,f,x},进行排序,第一趟的增量是4,则第一趟排序后的结果是( ) a、{h,q, c,y,q,a,m,s,r,d,f,x} b、{ a,h,c,y,q,q,m,s,r,d,f,x} c、{h,c,q,q,a,m,s,r,d,f,x,y} d、{q,a,c,s,q,d,f,x,r,h,m,y} 27、如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。( ) 28、设初始记录关键字基本有序,则快速排序算法的时间复杂度为o(nlog2n)。( ) 29、二维数组和多维数组均不是特殊的线性结构。( ) 30、如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。( ) 31、二叉树就是结点度不大于2的树。() 32、不存在这样的二叉树:它有n个度为0的结点,n-1个度为1的结点,n-2个度为2的结点。( ) 33、已知二叉树的先序和后序遍历序列可以唯一确定该二叉树。( ) 34、在哈夫曼树中,权值相同的叶子点一定在同一层上。( ) 35、在哈夫曼编码中,当两个字符出现的频率相等时,则两个字符的哈夫曼编码也相同。( ) 36、任何有向无环图的顶点都可以排成拓扑排序序列,且拓扑排序序列唯一( ) 37、所谓的下三角矩阵an╳n,是指当i 38、所谓的n阶(n>3)三对角矩阵(带状矩阵)是指非零元素只出现在矩阵的两条对角线上。( ) 39、任意一个广义表都可以表示为由表头和表尾构成( )。 40、非空的广义表的表尾可能是单个元素也可能是表元素( )。 41、对于一个有10个顶点,15条边的无向图,若采用邻接表表示,则边结点 有 个。 42、对于一个有10个顶点,15条边的无向图,若采用邻接表表示,则表头结点有 个。 43、设哈希表长度m=15,哈希函数h(key)=key mod p,则p最好取 。 44、对于一个m行n列的稀疏矩阵中有len个非零元素,则用十字链表存储时,需要__________个头指针。 45、对于一个m行n列的稀疏矩阵中有len个非零元素,则用十字链表存储时,需要____________ 个三元组结点。 46、对于17个待排序的数据元素存放在h[1..17]中,则用筛选法建初堆时,必须从第 __________个关键字开始调整。 47、设某哈夫曼树中有199个结点,则该哈夫曼树中有__________个叶子结点。 48、在快速排序、堆排序、简单选择排序、归并排序中,_________排序是稳定的。 49、设有一个二维数组a[m][n],假设a[0][0]地址为644,a[2][2] 地址为676,每个元素占一个字节空间,则a[3][3] 地址为_________________。 50、已知广义表l=(( x,y,z), a,( u,t,w)),则head( head( tail( tail( l))))的结果是( )。 51、已知数组m[ 1 ..10 ,-1 ..6 ,0 ..3 ], )若数组以行序为主序存储,起始地址为1 000 ,且每个数据元素占用3个存储单元,则m[ 2 ,4 ,2 ]的地址为( )猜你喜欢 2022-12-05 21:34 2022-12-05 21:25 2022-12-05 21:05 2022-12-05 20:49 2022-12-05 20:16 2022-12-05 20:09 2022-12-05 20:06 2022-12-05 19:36 2022-12-05 19:26 2022-12-05 19:09