《数据结构》_PTA_数据结构作业3 : 线性表3

判断题

1-1
线性表的逻辑顺序与物理顺序总是一致的。
F

1-2
线性表中的所有数据元素的数据类型必须相同。
T

1-3
KMP算法的特点是在模式匹配时指示主串的指针不会变小回溯。
T

1-4
不论是入队还是入栈操作,在顺序存储结构下都应考虑溢出现象。
T

1-5
数组可以应用顺序式存储结构,也可以应用链式存储结构
T

1-6
非空线性表只有唯一的开始结点。
T

1-7
非空线性表中每个结点都有一个前驱结点。
F

1-8
非空线性表除终端结点外,每个结点都有唯一的后继结点。
T

1-9
非空线性表可以有多个开始结点。
F

选择题

2-1
给定N×N×N的三维数组A,则在不改变数组的前提下,查找最小元素的时间复杂度是:
在这里插入图片描述

2-2
给定程序时间复杂度的递推公式:T(1)=1,T(N)=2T(N/2)+N。则对该程序时间复杂度最接近的描述是:O(NlogN)

2-3
线性表、堆栈、队列的主要区别是什么?(堆栈和队列都是插入、删除受到约束的线性表

2-4
下面的程序段违反了算法的(有穷性)原则。
在这里插入图片描述

2-5
KMP算法下,长为n的字符串匹配长度为m的字串的时间复杂度为O(M+N)

2-6
设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4, s6 , s5,s1,则栈的容量至少应该是( 3 )。

2-7
用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为(SXSSXSXX )。

2-8
算法P1和P2时间复杂度的递推方程分别为:
P1:T(n) = T(n/2) + 1, T(1)=1
P2:T(n) = 2T(n/2) + 1, T(1)=1
则下列关于P1和P2两个算法时间复杂度的结论中正确的是( P1为O(logn),P2为O(n) )。

2-9
下列代码的时间复杂度是:
在这里插入图片描述
在这里插入图片描述

2-10
下列函数
在这里插入图片描述

的时间复杂度是:
在这里插入图片描述

2-11
以下说法正确的是。
求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低;
顺序存储的线性表可以随机存取;
由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活

程序填空题

下列代码的功能是返回带头结点的单链表L的逆转链表。

List Reverse( List L )
{
    Position Old_head, New_head, Temp;
    New_head = NULL;
    Old_head = L->Next;

    while ( Old_head )  {
        Temp = Old_head->Next;
        @@Old_head->Next = New_head@@;
        New_head = Old_head;
        Old_head = Temp;
    }
    @@L->Next = New_head@@;
    return L;
}

Concatenation of lists is an operation where the elements of one list are added at the end of another list. For example, if we have a linked list L1→1→2→3 and another one L2→4→5→6. The function ListConcat is to return the head pointer of the list L→4→5→6→1→2→3.

The list structure is defined as the following:

typedef struct Node *PtrToNode;
struct Node{
    int Data;
    PtrToNode Next;
};
typedef PtrToNode List;

Please fill in the blanks.

List ListConcat(List L1, List L2)
{
	List Tmp = L2;
	if (!L2) return L1;
	while (Tmp->Next)
		@@ Tmp = Tmp->Next @@;
	@@ Tmp->Next = L1 @@;
	return @@ L2 @@;
}
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微__凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值