0.109

五煦查题

快速找到你需要的那道考题与答案

尔雅算法与数据结构答案(学习通2023课后作业答案)

39 min read

尔雅算法与数据结构答案(学习通2023课后作业答案)

第一周 数据结构概述(时长:24分42秒)

第1讲 什么是尔雅数据结构(时长:8分01秒)随堂测验

1、什么是算法数据数据结构?
A、一个计算过程,结构从一个初始状态和初始输入开始,答案停止于一个终态。学习
B、通课计算机中存储、后作组织数据的业答方式。
C、尔雅程序设计
D、算法数据基本数据类型

2、结构瑞士计算机科学家Nicklaus Wirth提出程序设计等于?
A、答案算法
B、学习数据结构
C、通课算法+数据结构
D、后作以上都不是

第2讲 数据结构与抽象数据类型(时长:7分34秒)随堂测验

1、基本的逻辑结构有哪些?
A、线性结构、树形结构、图形结构;
B、顺序结构、索引结构、链式结构;
C、抽象数据类型、运算集合。
D、散列结构

2、抽象数据类型的描述包括哪方面?
A、数据对象
B、数据关系
C、数据操作(运算)
D、以上都是

3、数据的抽象经历了从无类型到基本类型、基本类型到用户自定义类型、用户自定义类型到 三个发展阶段。
A、抽象类型
B、整型
C、实型
D、浮点类型

第3讲 算法与算法复杂度分析(时长:9分07秒)随堂测验

1、关于算法复杂度说法正确的是( )
A、算法复杂度指时间复杂度
B、算法复杂度指空间复杂度
C、算法复杂度包含时间复杂度、空间复杂度
D、算法复杂度通常与数据规模无关

2、影响算法运行时间的因素包括:
A、数据规模
B、数据分布
C、算法
D、数据结构

3、算法的有穷性是指算法中语句(或指令)的数量是有限的。

4、衡量算法的时间复杂度通常用T(n)表示基本操作的执行次数。

5、同样的数据规模,不同的数据分布情况下,最慢或运行步骤最多时的运行时间,这种情况是 。

数据结构概述测试

1、计算机算法指的是()
A、计算机程序
B、解决问题的有限运算序列
C、排序方法
D、检索方法

2、下面程序段的算法复杂度是() min=A[0]; for(i=1;i<n;i++) if( min>A[i]) min=A[i] 其中 n为正整数。
A、
B、
C、
D、

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、算法分析的主要任务之一是分析( )。
A、算法的执行时间和问题规模之间的关系
B、算法的正确性
C、算法的可读性
D、算法的功能是否符合用户需求

9、若某算法的时间复杂度为O(n^2),则表明该算法的( )。
A、执行时间与n^2成正比
B、问题规模是n^2
C、问题规模与n^2成正比
D、执行时间等于n^2

10、下列函数中时间复杂度是O(n)的是()。
A、
B、T(n)=500n
C、
D、T(n)=2n^2

11、下面代码段的时间复杂度为()。 { int i=1; while (i<=n) i=i*2; }
A、O(1)
B、O(n)
C、
D、

12、下面代码段的时间复杂度为()。 { int i=0, s=0; while (i<n) { s=s+a[i];i=i+2;} }
A、O(1)
B、O(n)
C、
D、

13、以下说法正确的是()。
A、数据结构是带结构的各数据项的集合
B、一些表面上很不相同的数据可以有相同的逻辑结构
C、数据元素是数据的最小单位
D、数据项是数据的基本单位

14、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这说明()。
A、每个数据元素所包含的数据项的个数要相等
B、每个数据元素都一样
C、数据元素具有同一特点
D、不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致

15、在决定选取何种存储结构时,一般不考虑()。
A、所用编程语言实现这种结构是否方便
B、结点个数的多少
C、各结点的具体值如何
D、对数据有哪些运算

16、下面的算法是判断n是否为素数,其算法时间复杂度为( )。 void prime(int n) { /* 判断n是否是素数 */ for (i=2; i<sqrt(n) && (n % i)!=0; i++) ; if (i>sqrt(n)) printf("%d is a prime number", n); else printf("%d is not a prime number", n); }
A、
B、
C、
D、

17、下面算法的时间复杂度为( )。 x=100; y=100; while(y>0) if(x>100) { x=x-10; y--;} else x++;
A、
B、
C、
D、

18、如下程序段: 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)
C、n*(n-1)/2
D、n*(n+1)/2

19、评价一个算法性能好坏的重要标准是( )。
A、算法是否易于理解
B、算法是否易于调试
C、算法的时间复杂度
D、算法的正确性

20、算法的时间复杂度取决于( )。
A、问题的规模
B、待处理数据的初态
C、实现算法所使用的的语言
D、数据采用的存储结构

21、数据结构包括数据的()、数据的()和数据的()这三个方面的内容。
A、逻辑结构
B、存储结构
C、运算
D、输入输出

22、常见的逻辑结构有集合 ,(),(),()四种。
A、顺序表
B、线性结构
C、树形结构
D、图形结构

23、计算机中算法指的是解决某一问题的有限运算序列,它必须具备0或多个输入、1或多个输出、( )、()、()。
A、确定性
B、有穷性
C、可移植性
D、可行性

24、一个抽象数据类型包括()。
A、一组基本操作
B、数据
C、数据对象
D、数据对象中各元素间的关系

25、数据的物理结构是指数据的各数据项之间的逻辑关系。

26、数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。

27、某算法的时间复杂度是O(n^3),表明该算法的执行时间与n^3成正比。

28、顺序存储的优点是逻辑上相邻的元素,物理上也是相邻的,因此可以实现随机存储。

29、数据元素是数据的基本单位

30、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储数据元素之间的关系。

31、健壮的算法不会因为非法输入而出现莫名的执行结果。

32、算法的可行性是指每一条指令具有明确含义。

33、算法的优劣与算法描述的语言无关。

34、程序一定是算法。

35、算法可以用不同的语言描述,如果用C或Java或Python等高级语言来描述,则算法实际上就是程序了。

36、任何数据结构都具备3个基本运算:插入、删除、和查找。

37、数据的逻辑结构与数据元素在计算机中如何存储有关。

38、如果数据元素值发生改变,则数据的逻辑结构也随之改变。

39、数据的逻辑结构时指数据的各数据项之间的逻辑关系。

C语言编程作业(复习)

1、本题要求实现一个函数,求给定的N个整数的和。

2、本题要求实现一个函数,计算N个整数中所有偶数的和,并实现一个判断奇偶性的函数。

3、该题为编程题,计算个人所得税

4、本题要求实现一个根据学生成绩设置其等级,并完成统计不及格人数的函数。

第二周 线性表(上)(时长:74分54秒)

第1讲 线性表及其顺序存储(时长:34分46秒)随堂测验

1、对于顺序存储的长度为n的线性表,下标从0开始,则删除第i个位置的元素需要移动____个元素。其中(0≤i<n)。
A、n-i
B、n-i-1
C、i
D、i+1

2、若长度为 n 的线性表采用顺序存储结构存储,在第 i 个位置上插入一个新元素的时间复杂度为( )。
A、O(n^2)
B、
C、O(n)
D、O(1)

3、假设在顺序表{ a1,a2,……,an}中,每一个数据元素所占的存储单元的数目为4,且第1个数据元素的存储地址为100,则第8个数据元素的存储地址是()。
A、106
B、107
C、124
D、128

4、同一个线性表中数据元素的类型可以不相同。

第2讲 单链表(时长:40分09秒)随堂测验

1、在一个不带头结点的单链表中,若要删除 p 所指结点的后继结点q,则执行( )。
A、p->next=q->next;free(q);
B、p=p->next; p->next=q->next;free(q);
C、p->next=p->next;free(q);
D、p =p->next->next;free(q);

2、线性表若采用链式存储结构时,要求内存中可用存储单元的地址()
A、必须是连续的
B、一定不是连续的
C、连续不连续均可
D、以上说法都不对

3、若用指针head指向不带头结点的单链表的表头,则该单链表为空的判定条件是()。
A、head->next==head
B、head!=NULL
C、head->next==NULL
D、head==NULL

4、在一个不带头结点的单链表中,若 p 所指结点不是最后结点,在 p 之后插入 s 所指结点,则执行()。
A、s->next=p;p->next=s;
B、s->next=p->next;p=s;
C、s->next=p->next;p->next=s;
D、p->next=s;s->next=p->next;

线性表单元测试(上)

1、线性表是( )
A、一个有限序列,不可以为空
B、一个有限序列,可以为空
C、一个无限序列,可以为空
D、一个无限序列,不可以为空

2、对于长度为n的顺序表(下标范围0..n-1),在第i个位置插入一个元素需要移动( )个元素。其中,0≤i≤n。
A、n-i
B、n-i-1
C、n-i+1
D、i

3、若数组A可存放100个元素,每个元素占4个字节,从首地址1000开始按顺序连续存放,那么,元素A[16]的起始地址为( )。
A、1128
B、1064
C、1032
D、1016

4、对于顺序存储的长度为n的线性表,删除第i个位置的元素需要移动( )个元素。其中,0≤i<n。
A、i
B、n-i+1
C、n-i-1
D、n-i

5、对于线性表,下列说法正确的是()。
A、表中元素必须是有序的
B、每个元素有且仅有一个直接前驱和一个直接后继
C、除第一个元素与最后一个元素,其他每个元素有且仅有一个直接前驱和一个直接后继
D、线性表不允许为空

6、线性表采用顺序存储结构,下列说法不正确的是( )。
A、插入、删除操作不必移动元素
B、需要事先估计所需存储空间,可能出现顺序表满的情况
C、内容空间地址必须是连续的
D、可以进行随机存取

7、线性表的顺序存储最适合于实现 ( )运算。
A、将x插入第i个位置
B、查找值为x
C、删除第i个位置元素
D、取第i个位置元素

8、在长度为n的顺序表中,查找值为x的数据元素的时间复杂度为()
A、O(1)
B、O(n)
C、O(n^2)
D、

9、在长度为n的顺序表中,查找第i个位置的数据元素的时间复杂度为()
A、O(1)
B、O(n)
C、O(n^2)
D、

10、对顺序存储的长度为n的线性表,假设在任何位置上进行删除操作是等概率的。则删除一个元素时平均要移动表中的( )个元素。
A、n
B、(n+1)/2
C、n/2
D、(n-1)/2

11、对顺序存储的长度为n的线性表,假设在任何位置上进行插入操作是等概率的。则插入一个元素时平均要移动表中的( )个元素。
A、n
B、n/2
C、(n+1)/2
D、(n-1)/2

12、在长度为n的顺序表的运算中,算法的时间复杂度是O(1)的操作是( )。
A、在第i个位置上插入一个新元素(0≤i≤n)
B、求第i个位置的元素的直接前驱(1≤i<n)
C、删除第i个位置上的元素(0≤i<n)
D、以上都不对

13、下面关于线性表的叙述错误的是 ()。
A、线性表采用链式存储便于插入和删除操作的实现
B、线性表采用顺序存储必须占用一片连续的存储空间
C、线性表采用链式存储不必占用一片连续的存储空间
D、线性表采用顺序存储便于插入和删除操作的实现

14、在单链表中,要删除某一指定的结(节)点,必须找到该结点的 ()结点。
A、头结点
B、尾结点
C、前驱
D、后继

15、求一个单链表长度的算法的时间复杂度为()。
A、
B、
C、
D、

16、已知一个长度为n的单链表中所有结点是递增有序的,以下叙述中正确的是 ()。
A、删除最大值结点使之有序的算法的时间复杂度为 O(1)
B、都不对
C、找最小值结点的算法的时间复杂度为 O(1)
D、插入一个结点使之有序的算法的时间复杂度为O(1)

17、将长度为m的单链表(A)链接在长度为n的单链表(B)之后的算法时间复杂度为()。
A、O(n)
B、O(m+n)
C、O(m)
D、O(1)

18、将长度为m的顺序表(A)链接在长度为n的顺序表(B)之后的算法时间复杂度为()。
A、O(m)
B、O(n)
C、O(m+n)
D、O(1)

19、在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 ()。
A、
B、
C、
D、

20、在单链表中查找指定值的结点的时间复杂度是()。
A、
B、
C、
D、

21、对于一个具有n个元素的线性表,建立其单链表的时间复杂度为 ( )。
A、
B、
C、
D、

22、对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为( )。
A、
B、
C、
D、

23、对于一个具有n个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为()。
A、
B、
C、
D、

24、下面的叙述中正确的是()。
A、线性表在链式存储时,查找第i个元素的时间与i的数值无关。
B、线性表在顺序存储时,查找第i个元素的时间与i的数值无关。
C、线性表在链式存储时,插入第i个元素的时间与i的数值成正比。
D、线性表在顺序存储时,查找第i个元素的时间与i的数值成正比。

25、线性表采用顺序存储结构进行存储,取第i个位置元素的时间与i值的大小有关。

26、具有100个元素的顺序表(下标从0开始),删除第50个位置的元素,需要移动51个元素。

27、线性表的特点是除了第一个元素以及最后一个元素外,其他元素有且仅有一个直接前驱和一个直接后继。

28、线性表中的所有数据元素的数据类型必须相同。

29、顺序表的插入、删除总是伴随着大量数据的移动。

30、顺序存储方式的优点是存储密度大,数据存储在连续的内存空间中,但是插入、删除运算效率低。

31、插入和删除操作是线性表的基本操作。这两种操作在数组中也经常使用。

32、顺序表中所有元素的排列顺序必须从小到大或从大到小。

33、顺序表结构适宜进行随机访问,而链表适宜进行插入、删除。

34、在单链表中,可以从头结点开始查找任何一个结点。

35、在单链表中,可以从任一结点开始查找到任何其他结点。

36、线性表的顺序存储结构优于链式存储结构。

线性表编程作业(上)

1、本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。

2、本题要求实现顺序表的操作集。

3、编写算法函数void reverse(List L),实现顺序表的就地倒置。

4、已知顺序表L1,L2中数据由小到大有序,请用尽可能快的方法将L1与L2中的数据合并到L3中,使数据在L3中按升序排列。

第三周 线性表(下)(时长:105分58秒)

第3讲 带头结点的单链表(时长:40分16秒)随堂测验

1、采用头插法创建带头结点的单链表,则创建一个长度为n的链表,其时间复杂度为()。
A、O(n)
B、O(1)
C、O(n^2)
D、

2、在一个带头结点的单链表中,若 head 所指结点是头结点,若要删除第一个实际元素结点,则执行()。
A、p=head->next;head->next=p->next;free(p);
B、p=head;free(p);head=head->next;
C、head=head->next;p=head;free(p);
D、p=head;head=head->next;free(p);

3、若带头结点的单链表的表头指针为head,则该单链表为空的判定条件是()。
A、head==NULL
B、head->next=NULL
C、head!=NULL
D、head->next=head

4、在一个带头结点的单链表head中,若要将 s 所指结点插入在第一个结点之前,则执行()。
A、head->next=s;s->next=head;
B、s->next=head->next;head=s;
C、s->next=head;head->next=s;
D、s->next=head->next;head->next=s;

第4讲 循环链表(时长:34分01秒)随堂测验

1、在一个非空的循环单链表中,若要删除p所指结点的后继结点,则执行( )。
A、q=p->next;p->next=q->next->next; free(q);
B、q=p->next;p->next=q->next; free(q);
C、q=p->next;p=q->next->next; free(q);
D、q=p->next; free(q);p->next=q->next->next;

2、对于一个非空的循环单链表,若头指针为head,假设指针myrear指向表中的最后一个结点,如果要在非空的循环单链表的最前面插入一个新结点p,则执行( )。
A、p->next=head;myrear->next=p;head=p;
B、head->next=p;myrear->next=p;head=p;
C、myrear->next=p;head=p;head->next=p;
D、myrear->next=p;head=p;p->next=head;

3、对于一个循环单链表,若头指针为head,表中的某个结点p是最后一个结点的特征是( )。
A、p->next==NULL
B、head==NULL
C、head->next=p
D、p->next==head

第5讲 双链表和静态链表(时长:31分41秒)随堂测验

1、在双链表中,任意一个结点中有( )个指针。
A、1
B、2
C、0
D、3

2、相对于顺序表而言,静态链表的优点是:在执行插入和删除操作时,只需修改下标,不需要移动表中的元素。

3、在一个非空的双链表中,若p所指的结点有前驱和后继,则执行p->next->prior=p=p->prior->next。

线性表单元测试(下)

1、关于线性表的链式存储,以下说法正确的是( )
A、可方便地进行随机存取
B、存储密度大
C、插入、删除运算方便
D、以上都不对

2、下面关于线性表的叙述中,错误的是哪一个?( )
A、线性表采用顺序存储,便于进行插入和删除操作
B、线性表采用顺序存储,必须占用一片连续的存储空间
C、线性表采用链接存储,便于插入和删除操作
D、线性表采用链接存储,存储空间连不连续都可以

3、如果线性表最常用的操作是取第i个结点及其前驱,则采用( )存储方式最节省时间。
A、单向链表
B、双向链表
C、顺序表
D、单向循环链表

4、对于使用带头结点的单链表,若头指针为head,判定该表为空的条件是( )。
A、head!=NULL
B、head->next==head
C、head==NULL
D、head->next==NULL

5、对于使用不带头结点的单链表,若头指针为head,判定该表为空的条件是( )
A、head==NULL
B、head->next==NULL
C、head->next=head
D、head!=NULL

6、已知指针p指向在一个单链表中的某个结点,若在该结点之后插入指针s指向的结点,则需执行( )。
A、s->next=p->next;p->next=s;
B、p->next=s;s->next=p;
C、s->next=p->next;s=p;
D、s->next=p->next;s=p->next;

7、已知指针p指向单链表head中的某个结点,若删除其后继结点,则需执行()。
A、r=p; p->next=r->next; free(r);
B、r=p->next; p=r->next; free(r);
C、r=p->next; p->next=r->next; free(r);
D、r=p->next; r->next=p->next; free(r);

8、对于一个具有n个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为()
A、O(1)
B、O(n)
C、O(n^2)
D、

9、在单链表head中,指针p所指结点是线性表中最后一个元素的条件是( )
A、p==NULL
B、p->next==NULL
C、p!=NULL
D、p->next!=NULL

10、在循环单链表head中,指针p所指结点是线性表中最后一个元素的条件是( )
A、p==head
B、p->next==NULL
C、p->next==head
D、p==NULL

11、与单链表相比,双链表的优点之一是 ( ) 。
A、更节约存储空间
B、能够方便的访问某结点的前驱结点
C、可以进行随机访问
D、插入、删除操作更简单

12、取链式表的第i个元素的时间与i值的大小有关。

13、静态链表中指针表示的是下一元素在数组中的下标。

14、对于一个头指针为H的带头结点的循环单链表,判定该表为空表的条件是H->next=NULL。

15、设p为指向长度为n的循环单链表上某结点的指针,从p开始可以遍历整个单链表。

16、静态链表与动态链表类似,在元素的插入、删除上也不需做元素的移动。

17、在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上一定不相邻。

线性表编程作业(下)

1、实现单链表的初始化,插入、删除、访问等基本操作。 单链表为带头结点的单链表结构。

2、假设带头结点的单链表L是升序排列的,将值为x的结点插入到链表L中,并保持链表有序性。

3、删除带头结点单链表L中所有值为X的结点。

4、已知两个带头结点的单链表L1和L2中的结点值均已按升序排序,设计一个算法,将L1和L2合并成一个升序的带头结单链表,并用L1记录新的带头结点单链表。

5、编写一个程序,用尽可能快的方法返回带头结点单链表中倒数第k个结点的地址,如果不存在,则返回ERROR。

3月25日(周五)实验题

1、请编写一个算法函数void partion(linklist head), 将带头结点的单链表head中的所有值为奇数的结点调整 到链表的前面,所有值为偶数的结点调整到链表的后面。

第四周 栈和队列(时长:79分33秒)

第1讲 栈(时长:29分45秒)随堂测验

1、判定一个顺序栈st为(元素个数最多为MaxSize,top初始值为0,指向下一个待入栈的元素的下标)空的条件为( )。
A、st.top==0
B、st.top!=MaxSize-1
C、st.top==MaxSize-1
D、st.top!=0

2、表达式a*(b+c)-d的后缀表达式是 ( )。
A、- + * a b c d
B、a b c * + d -
C、a b c + * d -
D、a b c d * + -

3、若用一个数组data[0..n-1]存储顺序栈,初始栈顶指针top为0,则要让元素x入栈(假设栈不满),应执行()操作。
A、data[top]=x;top--;
B、data[top]=x;top++;
C、top--; data[top]=x;
D、top++; data[top]=x;

4、已知一个栈的进栈序列是ABC,中间可以出栈,以下出栈序列正确的是()。
A、CAB
B、ABC
C、BAC
D、ACB

5、顺序栈中元素值的大小是有序的

第2讲 队列(时长:49分38秒)随堂测验

1、若用一个不带头结点的单链表表示队列,队头和队尾指针分别为front和rear,则判断队空的条件是( )。
A、front == rear
B、front == NULL
C、front!==NULL
D、rear!==NULL

2、若用一个不带表头节点的单链表表示队列,若队列非空,则在进行删除操作时,( )。
A、仅修改头指针
B、头、尾指针都要修改
C、仅修改尾指针
D、头指针一定要修改、尾指针可能要修改

3、循环队列qu(元素个数最多为MaxSize ,front队首指针指向队首元素位置,rear队尾指针指向下一个待入队元素的下标,采用浪费一个空间的方式进行存储),元素个数是( )。
A、(qu.rear-qu.front+ MaxSize)% MaxSize
B、(qu.rear-qu.front)% MaxSize
C、qu.rear-qu.front +1
D、qu.rear-qu.front

4、栈和队列的共同点是只允许在端点处插入和删除元素。

栈和队列单元测试

1、若元素A、B、C、D、E依次进栈后,栈顶元素是( )。
A、E
B、D
C、B
D、C

2、元素A、B、C依次进栈,中间允许出栈,若出栈序列为BCA,经过栈的操作是 ( )。
A、push push push pop pop pop
B、push push pop push pop pop
C、push pop push pop push pop
D、push pop push push pop pop

3、元素A、B、C依次进栈,中间允许出栈,则不可能的出栈序列是 ( )。
A、CAB
B、BCA
C、BAC
D、ABC

4、某算法在数据处理过程中需要存储一些中间数据,并且后存储的数据先处理,则使用()来存储这些数据更合理。
A、链式表
B、栈
C、队列
D、顺序表

5、表达式5*6-7*8 的后缀表达式是(  )。
A、56*78*-
B、5678**-
C、-**5678
D、5678*-*

6、表达式3+5+7*8 的后缀表达式是(  )。
A、35+78*+
B、3578*++
C、++35*78
D、3578+*+

7、若一个栈用数组data[0..n-1]存储,初始栈顶指针top为-1,则以下元素x进入栈的正确操作是( )。
A、data[top]=x;top++;
B、data[top]=x;top--;
C、top--; data[top]=x;
D、top++; data[top]=x;

8、若一个栈用数组data[0..n-1]存储,初始栈顶指针top为0,则以下元素x进入栈的正确操作是( )。
A、top++; data[top]=x;
B、top--; data[top]=x;
C、data[top]=x;top--;
D、data[top]=x;top++;

9、判定一个顺序栈st(数组大小为MaxSize,初始st.top==0)栈满的条件是( )。
A、st.top==-1
B、st.top==0
C、st.top==MaxSize-1
D、st.top==MaxSize

10、链栈与顺序栈相比,链式栈有一个明显的优点,它是()。
A、判断栈空更方便
B、一般不会出现栈满的情况
C、插入操作更方便
D、删除操作更加方便

11、若不带头结点的链栈其栈顶指针为top,则插入一个s指针所指向的结点时,应进行如下()操作。
A、s->next=top; top=s;
B、s->next=top->next; top->next=s;
C、s->next=top; top->next=s;
D、top>next = s;

12、若不带头结点的链栈其栈顶指针为top,则删除栈顶元素,应进行如下()操作。
A、top=top->next; s=top; free(s);
B、s=top; top=top->next; free(s);
C、s=top->next; top->next=s->next;free(s);
D、s=top; top->next=s->next;free(s);

13、顺序循环队列qu的队满条件(front队首指针指向队首元素,rear队尾指针指向队尾元素的后一个位置,采用浪费一个空间的方式进行存储,队列元素最大个数为MaxSize)是 ()。
A、(qu.rear+1)%MaxSize==qu.front
B、(qu.rear+1)%MaxSize==qu.front+1
C、qu.rear==qu.front
D、(qu.rear+1)%MaxSize==(qu.front+1)%Maxsize

14、假设用不带头结点的单链表表示队列,front和rear分别指向队头和队尾,则判断队空的条件是 ()。
A、front == NULL
B、front!==NULL
C、rear!==NULL
D、front == rear

15、为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中读取数据。该缓冲区最适合采用的逻辑结构是( )。
A、顺序表
B、栈
C、链式表
D、队列

16、队列操作的原则是( )。
A、先进先出
B、后进先出
C、只能进行插入操作
D、只能进行删除操作

17、栈和队列的不同点是栈只能在一端进行插入删除操作,而队列在不同端进行插入删除操作。

18、栈和队列均为操作受限的线性表。

19、顺序循环队列解决了空间溢出的问题。

20、顺序循环队列解决了顺序队列的假溢出问题。

21、栈是一种插入与删除操作均在表的一端进行的线性表,具有后进先出的特点。

22、在具有n个元素的非空顺序队列中, 插入或者删除一个元素的操作时间复杂度是O(n)。

第五周 字符串和数组 (上)(时长:73分31秒)

第1讲 字符串的定义以及顺序串的实现(时长:29分34秒)随堂测验

1、假设空串是任何串的子串,则串S=“Computer”的子串个数是( )
A、8
B、9
C、36
D、37

2、两个字符串相等的充分必要条件是()
A、两个字符串中对应位置上的字符相等
B、两个字符串的长度相等且对应位置上的字符也相等
C、两个字符串的长度相等
D、以上说法都不对

3、下列说法正确的是()
A、空串就是空白串
B、串只可以采用顺序存储,不可以采用链式存储
C、空串是任意字符串的子串
D、在C标准中,char S[M]最多能表示长度为M的字符串

4、在字符{ A, C, G, T}组成的DNA序列中,A和T、C和G是互补对。判断一个DNA序列中是否存在互补回文串(例如,ATCATGAT的补串是TAGTACTA,与原串形成互补回文串)。则DNA序列GTACGTAC也存在互补回文串。

第2讲 字符串的链式存储实现(时长:32分33秒)随堂测验

1、以下是采用压缩存储的一个链串的节点类型定义: #define NodeSize 6 typedef struct node { char data[NodeSize]; struct node *next; } LinkStrNode; 如果每个字符占1个字节,指针占2个字节,该链串的存储密度为( )。
A、
B、
C、
D、

2、对于一个链串s,查找第一个字符值为x的算法的时间复杂度为( )
A、
B、
C、
D、

第3讲 字符串的朴素模式匹配(时长:11分24秒)随堂测验

1、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作( )
A、模式匹配
B、取子串
C、求串长
D、串连接

2、在串的简单模式匹配中,当模式串位j与目标串位i比较时,两字符不相等,则i的位移方式是( )。
A、i不动
B、i++
C、i=j+1
D、i=i-j+1

字符串和数组单元测验 (上)

1、两个字符串相等的充分必要条件是( )
A、两个字符串的长度相等且对应位置上的字符也相等
B、两个字符串中对应位置上的字符相等
C、两个字符串的长度相等
D、以上说法都不对

2、设有两个串S和T ,其中T是S的子串,求T在S中首次出现的位置的算法称为( )
A、串的模式匹配
B、串连接
C、取子串
D、串插入

3、串的长度是指( )。
A、串中所含字符的个数
B、串中所含非空格字符的个数
C、串中所含不同字符的个数
D、串中所含不同字母的个数

4、以下是采用压缩存储的一个链串的节点类型定义: #define NodeSize 8 typedef struct node { char data[NodeSize]; struct node *next; } LinkStrNode; 如果每个字符占1个字节,指针占2个字节,该链串的存储密度为( )。
A、1/4
B、1/3
C、2/3
D、4/5

5、若串S=“software”,其子串个数为()
A、8
B、9
C、36
D、37

6、串是一种特殊的线性表,其特殊性体现在()
A、可以顺序存储
B、可以链式存储
C、数据元素可以是多个字符
D、数据元素是一个字符

7、int f(char s[])函数判断字符串s 是否是回文,是回文则返回1,否则返回0;如 f("abba")返回1,f("abcba")返回1f("abab")返回0; 对于(1),下列选项正确的是() int f(char s[]) { int i=0,j=0; while(s[j]) j++; for(j--; i < j && s[i] == s[j]; i++, j--); return _______(1)_______ ; }
A、i>j
B、i= =j
C、s[i] = = s[j]
D、i=j

8、下面关于串的叙述中,不正确的是( )。
A、串是一种特殊的线性表
B、串中元素只能是字母
C、空串就是空白串
D、串的长度必须大于零

9、在字符{ A, C, G, T}组成的DNA序列中,A和T、C和G是互补对。判断一个DNA序列中是否存在互补回文串(例如,ATCATGAT的补串是TAGTACTA,与原串形成互补回文串)。则下面DNA序列中存在互补回文串的是()
A、GTACGTAC
B、AGCTAGCT
C、AATTAATT
D、CTGATCAG

10、串是一种数据对象特殊的线性表。

11、串只可以采用顺序存储,不可以采用链式存储。

12、空串是任意字符串的子串。

13、空串就是空白串。

14、空串是不含字符的串,长度为0。

字符串和数组编程作业(上)

1、已知字符串采用带结点的链式存储结构,请完成以下函数的编写 1)linkstring substring(linkstring s,int i,int len),在字符串s中从第i个位置起取长度为len的子串,函数返回子串链表。 2)void delstring(linkstring s, int i,int len) ,在字符串s中删除从第i个位置开始,长度为len的子串。 3)linkstring index(linkstring s, linkstring t),查找子串t在主串s中第一次出现的位置,若匹配不成功,则返回NULL。

2、已知字符串采用顺序存储结构,请完成以下函数的编写: SeqString* substring(SeqString str, int i, int len);//在字符串str中从第i个位置起取长度为len的子串(i从1开始),函数返回子串指针,若子串超出边界返回NULL。 int index(SeqString s, SeqString t);//查找子串t在主串s中第一次出现的位置,若匹配成功,返回起始位置。若匹配不成功,则返回-1。 void delstring(SeqString *S, int i, int len);//在字符串s中删除从第i个位置开始(i从1开始),长度为len的子串。

3、加密解密

第六周 字符串和数组(下)(时长:62分06秒)

第4讲 数组及其顺序存储(时长:15分18秒)随堂测验

1、数组通常只有两种运算:( )和(?)
A、读取 修改
B、插入 删除
C、读取 插入
D、插入 修改

2、以行序优先顺序存储数组A[100][120];假定A[0][0]的地址为1000, 每个元素占2个字节,则A[5][3]的地址是()
A、2204
B、2206
C、2004
D、2006

3、数组的维数和维度一旦确定,数组中元素的个数就确定了,不能增加也不能减少。

第5讲 特殊矩阵的压缩存储(时长:16分07秒)随堂测验

1、对特殊矩阵采用压缩存储的目的主要是()
A、减少不必要的存储空间
B、对矩阵元素的存储变得简单
C、去掉矩阵中的多余元素
D、对矩阵元素的操作更方便

2、对n*n的对称矩阵进行压缩存储,需要保存的数据元素的个数是()
A、n^2
B、n
C、n*(n+1)/2
D、n*n/2

3、(2016年考研真题 第4题) 有一个100阶的三对角矩阵M,其元素 按行优先次序压缩存入下标从0开始的一维数组N中。元素 在N中的下标是()
A、86
B、87
C、88
D、89

第6讲 稀疏矩阵的三元组表示(时长:14分50秒)随堂测验

1、适用于压缩存储稀疏矩阵的两种存储结构是()
A、三元组表和十字链表
B、三元组表和邻接矩阵
C、十字链表和二叉链表
D、十字链表和邻接矩阵

2、使用三元组来保存稀疏矩阵中的非零元素,三元组包含非零元素的()
A、个数
B、行号
C、列号
D、元素值

3、使用三元组顺序表作为稀疏矩阵中的物理结构,对元素可以进行随机访问

第7讲 稀疏矩阵的转置(时长:15分51秒)随堂测验

1、以下物理结构中,不能够对数据元素进行随机访问的是( )
A、三元组顺序表
B、三对角矩阵的压缩存储
C、数组的顺序存储
D、对称矩阵的压缩存储

字符串和数组(下)单元测试

1、设有10×5的数组A,其每个元素占2个字节,按行优先顺序存储,若已知A[3][4]在内存中的地址是1038,则A[6][0]的地址是( )
A、1060
B、1030
C、1098
D、1068

2、设有10×6的数组A,数组下标从0,0开始,其每个元素占2个字节,按列优先顺序存储,若已知A[3][4]在内存中的地址是1086,则A[4][5]的地址是( )
A、1296
B、1140
C、1108
D、1054

3、将10×5 的二维数组A按照行优先顺序存储到一维数组B中,则B[35]中存储的二维数组元素是( )。
A、A[6][0]
B、A[7][0]
C、A[7][1]
D、A[6][1]

4、对特殊矩阵采用压缩存储的目的主要是( )。
A、对矩阵元素的存储变得简单
B、表达变得简单
C、减少不必要的存储空间
D、去掉矩阵中的多余元素

5、N*N的三对角矩阵,需要保存的数据元素的个数是( )。
A、3n-2
B、3n-1
C、3n
D、n(n+1)

6、某稀疏矩阵A采用三元组顺序表作为存储结构,对于矩阵元素的赋值运算A[i][j]=x,不可能的操作是( )。
A、修改某个三元组的元素值
B、删除一个三元组
C、插入一个新的三元组
D、修改某个三元组的行号或列号

7、使用三元组来保存稀疏矩阵中的非零元素,三元组不包括非零元素的( )
A、行号
B、列号
C、元素值
D、个数

8、以下物理结构中,不能够对数据元素进行随机访问的是( )
A、三对角矩阵的压缩存储
B、三元组顺序表
C、数组的顺序存储
D、对称矩阵的压缩存储

9、对稀疏矩阵进行压缩存储方法一般有两种,分别为三元组顺序表和十字链表

10、数组是一种定长的线性表,数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作。

11、数组是一种非线性结构,除了插入与删除操作外,数组的基本操作还有存取、修改、检索和排序等操作。

12、使用三元组顺序表或十字链表作为稀疏矩阵中的物理结构,对元素可以进行随机访问。

期中测验

1、具有线性结构的数据结构是( )。
A、图
B、树
C、广义表(线性表的推广)
D、栈

2、数据结构的基本类型中,( )结构的数据元素是一对多关系。
A、线性结构
B、图形结构
C、树型结构
D、集合结构

3、对于顺序存储的长度为n的线性表,下标从0开始,则删除第i个位置的元素需要移动____个元素。其中(0≤i<n)。
A、n-i
B、n-i-1
C、i
D、i+1

4、假设在顺序表{ a1,a2,……,an}中,每一个数据元素所占的存储单元的数目为4,且第1个数据元素的存储地址为100,则第8个数据元素的存储地址是()。
A、106
B、107
C、124
D、128

5、表达式 a*(b+c)?d 的后缀表达式是( )。
A、abcd*+?
B、abc+*d?
C、abc*+d?
D、?+*abcd

6、栈可以用顺序存储结构实现,则退栈操作(??)。
A、必须判别栈是否为满
B、必须判别栈是否为空
C、判别栈元素的类型
D、对栈不作任何判别

7、表长为n的顺序存储的线性表,当在任何位置上删除一个元素的概率相等时,则删除一个元素所需移动元素的平均个数为(  )。
A、n
B、n + 1
C、(n-1)/2
D、(n+1)/2

8、顺序循环队列中(数组的大小为n),队头指示front指向队列的第1个元素,队尾指示rear指向队列最后元素的后1个位置,则循环队列中存放了n - 1个元素,即循环队列满的条件为(  )。
A、(rear + 1)%n = front ? 1
B、(rear + 1)%n = front
C、(rear)%n = front
D、rear + 1 = front

9、若用一个数组data[0..n-1]存储顺序栈,初始栈顶指针top为0,则要让元素x入栈(假设栈不满),应执行()操作。
A、data[top]=x;top--
B、data[top]=x;top++;
C、top--; data[top]=x;
D、top++; data[top]=x;

10、顺序循环队列中(数组的大小为6),队头指示front和队尾指示rear的值分别为3和0,当从队列中删除1个元素,再插入2个元素后,front和rear的值分别为(  )。
A、5和1
B、2和4
C、1和5
D、4和2

11、下面哪个术语与数据的存储结构无关(  )
A、顺序表
B、链表
C、散列表
D、队列

12、两个有序线性表分别具有n个元素与m个元素且n≤m,现将其归并成一个有序表,其最少的比较次数是(  )。
A、n
B、m
C、n ? 1
D、m + n

13、在带头结点的单链表中查找x应选择的程序体是(  )。
A、node *p=head->next; while (p && p->info!=x) p=p->next; if (p->info==x) return p else return NULL;
B、node *p=head; while (p&& p->info!=x) p=p->next; return p;
C、node *p=head->next; while (p&&p->info!=x) p=p->next; return p;
D、node *p=head; while (p->info!=x) p=p->next ; return p;

14、用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时(   )。
A、仅修改队头指针
B、仅修改队尾指针
C、队头、队尾指针都要修改
D、队头、队尾指针都可能要修改

15、若从键盘输入n个元素,则建立一个有序单向链表的时间复杂度为(  )。
A、O(n)
B、O(n^2)
C、O(n^3)
D、O(nⅹlog2n)

16、在一个带头结点的单链表head中,若要将 s 所指结点插入在第一个结点之前,则执行()。
A、head->next=s;s->next=head;
B、s->next=head->next;head=s;
C、s->next=head;head->next=s;
D、s->next=head->next;head->next=s;

17、对于一个循环单链表,若头指针为head,表中的某个结点指针p是最后一个结点的特征是( )。
A、p->next==NULL
B、head==NULL
C、head->next=p
D、p->next==head

18、关于线性表的顺序存储结构和链式存储结构的描述中,正确的是( )。 Ⅰ.线性表的顺序存储结构优于其链式存储结构 Ⅱ.链式存储结构比顺序存储结构能更方便地表示各种逻辑结构 Ⅲ.如频繁使用插入和删除结点操作,顺序存储结构更优于链式存储结构 Ⅳ.顺序存储结构和链式存储结构都可以进行顺序存取
A、Ⅰ、Ⅱ、Ⅲ
B、Ⅱ、Ⅳ
C、Ⅱ、Ⅲ
D、Ⅲ、Ⅳ

19、下列关于线性表说法正确的是( )。 Ⅰ.顺序存储方式只能用于存储线性结构 Ⅱ.取线性表的第i个元素的时间同i的大小有关 Ⅲ.静态链表需要分配较大的连续空间,插入和删除不需要移动元素 Ⅳ.在一个长度为n的有序单链表中插入一个新结点并仍保持有序的时间复杂度为O(n) Ⅴ.若用单链表来表示队列,则应该选用带尾指针的循环链表
A、Ⅰ、Ⅱ
B、Ⅰ、Ⅲ、Ⅳ、Ⅴ
C、Ⅳ、Ⅴ
D、Ⅲ、Ⅳ、Ⅴ

20、下面关于线性表的一些说法中,正确的是( )。
A、对一个设有头指针和尾指针的单链表执行删除最后一个元素的操作与链表长度无关
B、线性表中每个元素都有一个直接前趋和一个直接后继
C、为了方便插入和删除数据,可以使用双链表存放数据
D、取线性表第i个元素的时间同i的大小有关

21、某线性表中最常见的操作是在最后一个元素之后插入一个元素和删除第一个元素,则釆用( )存储方式最省时间。
A、单链表
B、仅有头指针的单循环链表
C、双链表
D、仅有尾指针的单循环链表

22、两个有序线性表分别具有n个元素与m个元素且n≤m,现将其归并成一个有序表,其最少的比较次数是(  )。
A、n
B、m
C、n ? 1
D、m + n

23、在带头结点的单链表中查找x应选择的程序体是(  )。
A、node *p=head->next; while (p && p->info!=x) p=p->next; if (p->info==x) return p else return NULL;
B、node *p=head; while (p&& p->info!=x) p=p->next; return p;
C、node *p=head->next; while (p&&p->info!=x) p=p->next; return p;
D、node *p=head; while (p->info!=x) p=p->next ; return p;

24、用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时(   )。
A、仅修改队头指针
B、仅修改队尾指针
C、队头、队尾指针都要修改
D、队头、队尾指针都可能要修改

25、若从键盘输入n个元素,则建立一个有序单向链表的时间复杂度为(  )。
A、O(n)
B、O(n^2)
C、O(n^3)
D、O(nⅹlog2n)

26、在一个带头结点的单链表head中,若要将 s 所指结点插入在第一个结点之前,则执行()。
A、head->next=s;s->next=head;
B、s->next=head->next;head=s;
C、s->next=head;head->next=s;
D、s->next=head->next;head->next=s;

27、对于一个循环单链表,若头指针为head,表中的某个结点指针p是最后一个结点的特征是( )。
A、p->next==NULL
B、head==NULL
C、head->next=p
D、p->next==head

28、关于线性表的顺序存储结构和链式存储结构的描述中,正确的是( )。 Ⅰ.线性表的顺序存储结构优于其链式存储结构 Ⅱ.链式存储结构比顺序存储结构能更方便地表示各种逻辑结构 Ⅲ.如频繁使用插入和删除结点操作,顺序存储结构更优于链式存储结构 Ⅳ.顺序存储结构和链式存储结构都可以进行顺序存取
A、Ⅰ、Ⅱ、Ⅲ
B、Ⅱ、Ⅳ
C、Ⅱ、Ⅲ
D、Ⅲ、Ⅳ

29、下列关于线性表说法正确的是( )。 Ⅰ.顺序存储方式只能用于存储线性结构 Ⅱ.取线性表的第i个元素的时间同i的大小有关 Ⅲ.静态链表需要分配较大的连续空间,插入和删除不需要移动元素 Ⅳ.在一个长度为n的有序单链表中插入一个新结点并仍保持有序的时间复杂度为O(n) Ⅴ.若用单链表来表示队列,则应该选用带尾指针的循环链表
A、Ⅰ、Ⅱ
B、Ⅰ、Ⅲ、Ⅳ、Ⅴ
C、Ⅳ、Ⅴ
D、Ⅲ、Ⅳ、Ⅴ

30、下面关于线性表的一些说法中,正确的是( )。
A、对一个设有头指针和尾指针的单链表执行删除最后一个元素的操作与链表长度无关
B、线性表中每个元素都有一个直接前趋和一个直接后继
C、为了方便插入和删除数据,可以使用双链表存放数据
D、取线性表第i个元素的时间同i的大小有关

31、某线性表中最常见的操作是在最后一个元素之后插入一个元素和删除第一个元素,则釆用( )存储方式最省时间。
A、单链表
B、仅有头指针的单循环链表
C、双链表
D、仅有尾指针的单循环链表

32、在双链表中向p所指的结点之前插入一个结点q的操作为( )。
A、p->prior=q;q->next=p;p->prior->next=q;q->prior=p->prior;
B、q->prior=p->prior;p->prior->next=q;q->next=p;p->priop=q->next;
C、q->next=p;p->next=q;q->prior->next=q;q->next=p;
D、p->prior->next=q; q->next=p; q->prior=p->prior;p->prior=q;

33、在双向链表存储结构中,删除p所指的结点时必须修改指针( )。
A、p->llink->rlink=p->rlink; p->rlink->llink=p->llink;
B、p->llink=p->llink->llink;p->llink->rlink=p;
C、p->rlink->llink=p; p->rlink = p->rlink->rlink;
D、p->rlink=p->llink->llink;p->llink=p->rlink->rlink;

34、设线性表中有2n个元素,( )在单链表上实现要比在顺序表上实现效率更高。
A、删除所有值为x的元素
B、在最后一个元素的后面插入一个新元素
C、顺序输出前k个元素
D、交换第i个元素和第2n-i-l个元素的值(i=0,…, n-1)

35、静态链表中指针表示的是( )。
A、下一元素的地址
B、内存储器地址
C、下一个元素在数组中的位置
D、左链或右链指向的元素的地址

36、下列说法正确的是()
A、空串就是空白串
B、串只可以采用顺序存储,不可以采用链式存储
C、空串是任意字符串的子串
D、在C标准中,char S[M]最多能表示长度为M的字符串

37、以下是采用压缩存储的一个链串的节点类型定义: #define NodeSize 6 typedef struct node { char data[NodeSize]; struct node *next; } LinkStrNode; 如果每个字符占1个字节,指针占2个字节,该链串的存储密度为( )。
A、1/3
B、1/2
C、3/4
D、2/3

38、在串的简单模式匹配中,当模式串位j与目标串位i比较时,两字符不相等,则i的位移方式是( )。
A、i不动
B、i++
C、i=j+1
D、i=i-j+1

39、下面的说法中,只有()是正确的。
A、字符串的长度是指串中包含的字母的个数
B、字符串的长度是指串中包含的不同字符的个数
C、若T包含在S中,则T一定是S的一个子串
D、一个字符串不能说是其自身的一个子串

40、若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行 concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index(S2,‘8’),length(S2)) ) 注意:substr(S,i,j)是对字符串S的下标为i开始取j个字符,这里的下标是从0开始的。Concat函数是字符串的连接。
A、ABC###G0123
B、ABCD###2345
C、ABCD###1234
D、ABC###G2345

41、设有数组定义:char array[10]= "China";则数组array所占的存储空间为( )。
A、4个字节
B、5个字节
C、6个字节
D、10个字节

42、对于KMP算法,主串S=“ababaaababaa”的next数组值为( )。
A、01234567899
B、012121111212
C、011234223456
D、0123012322345

43、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s(i)≠t(j))时,i=j=5,则下一次开始匹配时,i和j的值分别是( )。
A、i=1,j=0
B、i=5,j=0
C、i=5,j=2
D、i=6,j=2

44、以行序优先顺序存储数组A[5][5];假定A[0][0]的地址为1000, 每个元素占4个字节,下标变量A[4][3]的地址是( )。
A、1069
B、1092
C、1046
D、1023

45、设10*10的对称矩阵下三角保存SA[1..55]中,其中A[1][1]保存在SA[1]中,A[5][3] 保存在SA[k]中,这里k等于( )。
A、13
B、15
C、12
D、14

46、栈是一种特殊的线性表,具有( )性质。
A、先进先出
B、先进后出
C、后进后出
D、顺序进出

47、当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是( )。
A、top==MAXSIZE
B、top==-N
C、top==-1
D、top==0

48、判定一个顺序栈st为(元素个数最多为MaxSize,top初始值为0,指向下一个待入栈的元素的下标)空的条件为( )。
A、st.top==0
B、st.top!=MaxSize-1
C、st.top==MaxSize-1
D、st.top!=0

49、队列是一种特殊的线性表,其特殊性在于(  )。
A、插入和删除在表的不同位置执行
B、插入和删除在表的两端位置执行
C、插入和删除分别在表的两端执行
D、插入和删除都在表的某一端执行

50、设栈的输入序列为 1、2、3…n,若输出序列的第一个元素为 n,则第 i 个输出的元素为 ( )。
A、不确定
B、n?i+1
C、i
D、n?i

51、栈可以用顺序存储结构实现,则退栈操作(??)。
A、必须判别栈是否为满
B、必须判别栈是否为空
C、判别栈元素的类型
D、对栈不作任何判别

52、在双链表中,任意一个结点中有( )个指针。
A、1
B、2
C、0
D、3

53、某线性表中最常见的操作是在最后一个元素之后插入一个元素和删除第一个元素,则釆用( )存储方式最省时间。
A、单链表
B、仅有头指针的单循环链表
C、双链表
D、仅有尾指针的单循环链表

54、在双链表中向p所指的结点之前插入一个结点q的操作为( )。
A、p->prior=q;q->next=p;p->prior->next=q;q->prior=p->prior;
B、q->prior=p->prior;p->prior->next=q;q->next=p;p->priop=q->next;
C、q->next=p;p->next=q;q->prior->next=q;q->next=p;
D、p->prior->next=q; q->next=p; q->prior=p->prior;p->prior=q;

55、采用头插法创建带头结点的单链表,则创建一个长度为n的链表,其时间复杂度为()。
A、O(n)
B、O(1)
C、O(n^2)
D、

56、若带头结点的单链表的表头指针为head,则该单链表为空的判定条件是()。
A、head==NULL
B、head->next=NULL
C、head!=NULL
D、head->next=head

57、对于一个非空的循环单链表,若头指针为head,假设指针myrear指向表中的最后一个结点,如果要在非空的循环单链表的最前面插入一个新结点p,则执行( )。
A、p->next=head;myrear->next=p;head=p;
B、head->next=p;myrear->next=p;head=p;
C、myrear->next=p;head=p;head->next=p;
D、myrear->next=p;head=p;p->next=head;

58、两个有序线性表分别具有 n 个元素与 m 个元素且 n≤m,现将其归并成一个有序表, 其最少的比较次数是( )。
A、n
B、m
C、n-1
D、m+n

59、采用头插法创建带头结点的单链表,则创建一个长度为n的链表,其时间复杂度为()。
A、O(n)
B、O(1)
C、O(n^2)
D、

60、若带头结点的单链表的表头指针为head,则该单链表为空的判定条件是()。
A、head==NULL
B、head->next=NULL
C、head!=NULL
D、head->next=head

61、对于一个非空的循环单链表,若头指针为head,假设指针myrear指向表中的最后一个结点,如果要在非空的循环单链表的最前面插入一个新结点p,则执行( )。
A、p->next=head;myrear->next=p;head=p;
B、head->next=p;myrear->next=p;head=p;
C、myrear->next=p;head=p;head->next=p;
D、myrear->next=p;head=p;p->next=head;

62、KMP算法的特点是在模式匹配时之时主串的指针( )。
A、不会变大
B、不会变小
C、大小不变
D、都有可能

63、下面关于串的的叙述中,( )是不正确的?
A、串是字符的有限序列
B、空串是由空格构成的串
C、模式匹配是串的一种重要运算
D、串既可以采用顺序存储,也可以采用链式存储

64、当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则表示栈满的条件是( )。
A、top==MAXSIZE
B、top==-N
C、top==-1
D、top==0

65、常用的数据结构包括( )。
A、线性表
B、排序
C、二叉树
D、图

66、已知一个栈的进栈序列是ABC,中间可以出栈,以下出栈序列正确的是()。
A、CAB
B、ABC
C、BAC
D、ACB

67、设主串长度为n,子串长度为m,那么简单的模式匹配算法的时间复杂度为( ),KMP算法的时间复杂度为( )。
A、O(m)
B、O(n)
C、O(m*n)
D、O(m+n)

68、同一个线性表中数据元素的类型可以不相同。

69、顺序栈中元素值的大小是有序的。

70、在一个非空的双链表中,若p所指的结点有前驱和后继,则执行p->next->prior=p=p->prior->next。

71、相对于顺序表而言,静态链表的优点是:在执行插入和删除操作时,只需修改下标,不需要移动表中的元素。

72、在字符{ A, C, G, T}组成的DNA序列中,A和T、C和G是互补对。判断一个DNA序列中是否存在互补回文串(例如,ATCATGAT的补串是TAGTACTA,与原串形成互补回文串)。则DNA序列GTACGTAC也存在互补回文串。

73、i=1;k=0; while (i<n) { k=k+10*i; i++; } 分析上面算法程序段的时间复杂度为:( )。

74、i=1;j=0; while (i+j<=n) { if (i>j) j++ ; else i++; } 分析上面算法程序段的时间复杂度为:( ) 。

75、x=91;y=100; while (y>0) if (x>100) { x=x-10; y--; } else x++; 分析上面算法程序段的时间复杂度为:( ) 。

76、C语言中 ,若x和y的初值分别为7,4;则语句 a=(--x==y++)?--x:++y 执行后a的值为( )。

77、for (i=0;i<n;i++) for (j=0;j<n;j++) printf(“%d”,i+j); 分析上面算法程序段的时间复杂度为:( ) 。

字符串和数组(下)编程作业

1、实现稀疏矩阵(采用三元组表示法)的基本运算

2、实现稀疏矩阵(采用三元组表示法)的加法运算

第七周 树和二叉树(上)(时长:83分48秒)

第1讲 树的基本概念和存储结构(时长:23分18秒)随堂测验

1、在一棵度为3的树中,度为3结点数为2个

学习通算法与数据结构

算法与数据结构是计算机科学的重要组成部分,不论是在工作中还是面试中都占据了很大的比重。而学习通算法与数据结构,是每个程序员必不可少的一步。在本文中,我们将介绍学习通算法与数据结构的重要性、学习算法与数据结构的方法、以及学习算法与数据结构所需的知识和技能。

算法与数据结构的重要性

算法与数据结构是计算机科学的两大基石。它们贯穿于计算机科学的方方面面,无论是在计算机软件还是硬件领域,都有广泛的应用。

在软件领域,算法和数据结构是开发出高效、稳定和可维护软件的重要基础。无论是编写一个简单的程序还是大型的软件系统,都需要算法和数据结构的支持。

在硬件领域,算法和数据结构也占据着非常重要的地位。在设计微处理器、单片机等硬件时,需要考虑算法和数据结构的实现,以提高其性能。

学习算法与数据结构的方法

学习算法与数据结构是一个需要耐心和时间的过程。以下是一些学习算法与数据结构的方法。

1. 掌握基本概念

在学习算法和数据结构之前,你需要理解一些基本概念和术语。例如,数据结构中的数组、链表、栈、队列、树和图等,以及算法中的排序、查找、递归和动态规划等。只有理解了这些基本概念,才能更轻松地学习算法和数据结构。

2. 学习基础算法和数据结构

学习算法和数据结构的过程中,你需要掌握一些基本的算法和数据结构,例如冒泡排序、选择排序、插入排序、快速排序、二分查找、栈和队列等。这些基础算法和数据结构不仅对于你之后的学习非常重要,而且在工作中也会经常用到。

3. 多做练习题

在学习算法和数据结构的过程中,你需要多做练习题,以加深对算法和数据结构的理解和掌握。你可以通过网上的在线练习平台、算法书籍和各种编程挑战赛等途径获取练习题。

4. 写代码实现

通过写代码来实现算法和数据结构,将有助于你更深入地理解它们的原理和应用。你可以通过实现算法和数据结构的基本操作,如增加、删除、查找等,来巩固和加深对算法和数据结构的理解。

学习算法与数据结构所需的知识和技能

学习算法与数据结构需要掌握一些基本知识和技能,以下是一些重要的知识和技能。

1. 编程语言

要学习算法和数据结构,你需要掌握至少一种编程语言。你需要了解编程语言的基本语法、数据类型、控制结构和面向对象编程等知识。在学习算法和数据结构时,你需要用编程语言来实现算法和数据结构。

2. 算法与数据结构知识

在学习算法和数据结构时,你需要了解一些基本的算法和数据结构。你需要掌握它们的原理、实现和应用。你需要对基本算法和数据结构有深入的理解,以便能够应对各种复杂的问题。

3. 算法分析能力

在学习算法和数据结构时,你需要具备一定的算法分析能力。你需要能够分析算法的时间复杂度、空间复杂度和稳定性等指标。你需要能够比较不同算法的性能和应用场景,以便选择最适合的算法。

4. 解决问题的能力

学习算法和数据结构的最终目的是能够解决各种问题。你需要具备解决问题的能力,能够将所学的算法和数据结构应用于实际问题中,并能够通过不断地练习不断提高自己的解决问题的能力。

结论

学习算法和数据结构是每个程序员必不可少的一步。在学习算法和数据结构时,你需要掌握一定的基本知识和技能,如编程语言、算法与数据结构知识、算法分析能力以及解决问题的能力等。掌握了这些知识和技能,你就能够更轻松地学习算法和数据结构,更好地应对实际工作中的问题。


在Excel中,保存的是()文件。

A.数控机床上机床参考点与机床零点可以重合。
B.钢筋下料长度等于外包尺寸
C.PTCD可导致胆心反射,严重可导致死亡
D.创新意识的特征包括( )。


欧洲古典主义时期建筑的代表作品是巴黎罗浮宫。

A.下列基态原子的电子构型中,正确的是
B.进行Java基本GUI设计需要用到的包是( )。
C.南京临时的局限性表现为
D.与柴油机相比,汽油机的压缩比( )。


能够体现王安石变法“民不加赋而国用饶”思想的措施是( )

A.关于红皮病型银屑病的描述错误的是( )
B.下面属于实地调研主要内容是
C.习作批改应包括“批”和“改”两个方面。
D.A. rather than


The meeting next week

A.医生适当使用方言和患者沟通,可以拉近医患关系,促进医患沟通效果。
B.在满族萨满教观念中,人与各种生物都有哪一种魂,与生命同始终
C.支持局域网与广域网互联的设备称为( )
D.钢筋混凝土受弯构件,当计算截面上所承受的剪力设计值时,该构件。


到公元7世纪末入侵西罗马帝国的

A.患者小便赤涩,尿道灼痛,心烦口渴,舌红,苔黄,脉数。应考虑为
B.练习眼定方法时不能采取一对一的方式
C.引起物质燃烧的关键是( )。_
D.确定网络广告目标遵循的原则是:( )


《()》和《()》,都是用墨笔描绘的墓葬帛画,意为引领墓主人升天的美好愿望。

A.在javascript中,有多少种不同类型的循环 ()
B.excel中,可以按照自定义的序列进行排序。
C.在管理会计中,将全部成本区分为产品成本和期间成本的分类标志是( )。
D.正弦波振荡器的振荡频率取决于( )。


( )就是试图用相同程序来解决新问题的倾向。

A.莎士比亚喜剧作品包括下面哪几部
B.现代服装工程包含以下流程( )
C.在绘图时,若要以默认方式新建一个图形窗口,应执行figure命令
D.在我国,普通居民用电分为火线和零线,两者之间存在着( )伏特的电压。


结合案例,分析本田伙伴型供应商关系选择有什么特点

A.诵读的作品一定得是文学作品
B.客户拒绝某项必要维修时,业务接待应采取哪种方法进行处理( )
C.创业风险产生的缺口有( )。
D.美国强势布局亚太,加速对我战略遏制与围堵采取了哪些措施


能动的反映是摹写与创造的

A.在毛细管区带点泳中,下列不是依赖阴阳离子( )作用力推动。
B.07ab2e866ae64360bffcd698cefdb422.png
C.做新时期忠诚坚定的爱国者,下列做法不正确的是( )。
D.鳗鲡和北梭鱼的生长活动中均伴随着变态现象()


下列各项中,属于企业流动资产的是(  )。

A.图示电路,当时,,则当,应为 ( )。
B.智慧职教: 混凝土运输至现场如果不合格可以进行二次搅拌。
C.动态NAT可以实现多个内部地址对一个外部地址的映射。()
D.祥林嫂是鲁迅哪部作品中的人物( )。


千县万村的计划是哪个公司提出的( )。

A.下面的表述中,( )是托盘的不足之处。
B.以下哪种元素定位方式将会脱离标准文档流( )。
C.生物膜法与活性污泥法相比,参与净化反应的微生物种类少
D.组织一场有效的会议,要从会议的准备、会议的过程以及会后的工作三个方面来进行。


酶催化反应不仅能加速可逆反应的进程,而且能改变反应的平衡点。

A.《琵琶记》的作者是高明。
B.对于玫瑰来说,它的内涵意义是指:
C.有关境外购物,下列说法错误的有()。
D.基坑或基槽验收的内容包含下列哪几项


自荐信的格式一般包括( )

A.《催咚催》是与农事活动中的()有关。
B.以下词语中属于正面情绪的是( )。
C.29adf29e989040d683f7ffe5fd4cf46a.png
D.对于任意两个随机变量,相关系数为0的充要条件是两个随机变量独立。( )


平行光管产生平行光的调节方法

A.以爱国主义为核心的民族精神包括:()
B.语文课程中设置了“综合性学习”,是课程标准的一个突出特点。
C.下列关于疾病的叙述,正确的是:
D.故宫博物院收藏的斗彩三秋杯的年款是()