数据结构习题-带答案-12-13-2讲解
数据结构习题和答案

习题课填空1、对于一棵二叉树,若一个结点的编号为i,则它的左孩子结点的编号为,双亲结点的编号为。
2、向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动个元素。
3、在一棵二叉树中,若双分支结点数为5个,单分支结点数为6个,则叶子结点数为个。
4、为了实现折半查找,线性表必须采用方法存储。
顺序5、一种抽象数据类型包括数据对象和。
6、在以L为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为__________和_______。
7、数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。
8、队列的插入操作在进行,删除操作在进行。
9、二叉搜索树的中序遍历得到的结点序列为____ ____。
10、在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。
11、栈的特点是。
12、在单链表中,除了首元结点外,任一结点的存储位置由。
13、在一个具有n个顶点的无向图中,要连通所有顶点则至少需要条边。
14、深度为k(设根的层数为1)的完全二叉树至少有个结点,至多有个结点。
15、一棵深度为6的满二叉树有个分支结点和个叶子结点。
16、一个算法的效率可分为效率和效率。
17、队列的特点是。
18、一棵深度为5的满二叉树中的结点数为个。
19、在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
简答题1、已知一组元素为(38,26,62,94,35,50,28,55),画出按元素排列顺序输入生成的一棵二叉搜索树。
答:2、假设有二维数组A[0..5,0..7],每个元素用相邻的6个字节存储,存储器按字节编址。
已知A的起始存储位置(基地址)为1000,计算:(1)末尾元素A57的第一个字节地址为;(2)若按列存储时,元素A47的第一个字节地址为。
(3) 数组A的体积(存储量);(4) 若按行存储时,元素A14的第一个字节地址为。
数据结构习题及标准答案

第一章1.在数据结构中,从逻辑上可以把数据结构分为(C )A.动态结构和静态结构B。
紧凑结构和非紧凑结构C.线性结构和非线性结构D。
内部结构和外部结构● 2.在数据结构中,与所使用的计算机无关的是( A )A。
逻辑结构 B. 存储结构C。
逻辑和存储结构 D. 物理结构3。
下面程序的时间复杂度为____O(mn)_______。
for (int i=1;i〈=m; i++)for (int j=1;j〈=n;j++ )S+=i第二章线性表●链表不具备的特点是(A)A 可以随机访问任一结点(顺序)B 插入删除不需要移动元素C 不必事先估计空间D 所需空间与其长度成正比2。
不带头结点的单链表head为空的判定条件为(A ),带头结点的单链表head为空的判定条件为(B )A head==nullB head—〉next==nullC head-〉next==headD head!=null●3.在线性表的下列存储结构中,读取元素花费时间最少的是(D)A 单链表B 双链表C 循环链表D 顺序表● 4.对于只在表的首、尾两端进行手稿操作的线性表,宜采用的存储结构为(C)A 顺序表B 用头指针表示的单循环链表C 用尾指针表示的单循环链表D 单链表●5。
在一个具有n 个结点的有序单链表中插入一个新的结点,并保持链表元素仍然有序,则操作的时间复杂度为( D )A O(1)B O(log2n)C O(n2)D O(n)● 6.在一个长度为n (n〉1)的单链表上,设有头和尾两个指针,执行(B)操作与链表的长度有关A 删除单链表中第一个元素B 删除单链表中最后一个元素C 在第一个元素之前插入一个新元素D 在最后一个元素之后插入一个新元素●7。
与单链表相比,双向链表的优点之一是(D)A 插入删除操作更简单B 可以进行随机访问C 可以省略表头指针或表尾指针D 顺序访问相邻结点更容易●8。
若list是某带头结点的循环链表的头结点指针,则该链表最后那个链结点的指针域(头结点的地址)中存放的是( B )A list的地址B list的内容C list指的链结点的值D 链表第一个链结点的地址●9.若list1和list2分别为一个单链表与一个双向链表的第一个结点的指针,则( B )A list2比list1占用更多的存储单元B list1与list2占用相同的存储单元C list1和list2应该是相同类型的指针变量D 双向链表比单链表占用更多的存储单元10。
数据结构习题及参考答案

数据结构习题及参考答案一、概述在计算机科学领域,数据结构是指组织和存储数据的方式,以便于有效地访问和操作。
它是计算机算法和程序设计的基础。
下面将介绍一些常见的数据结构习题,并提供相应的参考答案,帮助读者更好地理解和掌握数据结构。
二、数组1. 习题:给定一个数组,编写一个函数来计算数组中元素的和。
【参考答案】```pythondef sum_array(arr):sum = 0for num in arr:sum += numreturn sum```三、链表1. 习题:给定一个链表,反转链表,并返回反转后的头节点。
【参考答案】```pythonclass ListNode:def __init__(self, val=0, next=None): self.val = valself.next = nextdef reverse_linked_list(head):prev = Nonecurr = headwhile curr:next_node = curr.nextcurr.next = prevprev = currcurr = next_nodereturn prev```四、栈和队列1. 习题:使用栈实现队列的功能。
【参考答案】```pythonclass MyQueue:def __init__(self):self.stack1 = []self.stack2 = []def push(self, x):self.stack1.append(x)def pop(self):if not self.stack2:while self.stack1:self.stack2.append(self.stack1.pop())return self.stack2.pop()def peek(self):if not self.stack2:while self.stack1:self.stack2.append(self.stack1.pop())return self.stack2[-1]def empty(self):return len(self.stack1) == 0 and len(self.stack2) == 0 ```五、树1. 习题:给定一个二叉树,判断它是否是高度平衡的。
数据结构习题参考答案与解析

习题1 参考答案1至8题答案略。
9.(1)【解】该逻辑结构为线性结构,其图形表示如下:(2)【解】该逻辑结构为树型结构,其图形表示如下:(3)【解】该逻辑结构为图型结构,其图形表示如下:(4)【解】该逻辑结构为线性结构,其图形表示如下:10.【解】该图书库存管理系统所要处理的数据对象为图书,所以该问题中涉及的数据元素为图书,设数据元素类型为bookType 类型。
每个数据元素应包含的数据项有图书编号、书名、作者、出版社、出版日期等。
可用一个表格(如下表)的形式表示图书间的逻辑关系,即该问题数学模型可采用简单的线性结构来表示。
根据问题需求功能目标,此模型的所需的主要处理操作有插入、删除、查找和修改等基本操作。
所以,现用抽象数据类型bookList 表示问题模型,其逻辑结构与基本操作的定义如下: (1)逻辑结构bookList=( D, {r} )D={b i | b i 为bookType 类型的元素,i=1,2,3, ....., n ,n ≥0} r ={ <bk i ,b i+1>| i=1,2,…, n -1, n ≥0 } (2)基本操作 ①初始化操作函数:InitBookList(&BL)。
……初始条件:图书表BL 不存在。
操作结果:构造一个空的图书表BL 。
②求图书表长度操作函数:bookListLength(BL)。
初始条件:图书表BL 已存在。
操作结果:返回图书表BL 中所包含的数据元素(图书)的个数。
③取图书表中元素操作函数:getBook(BL, i, &b)。
初始条件:图书表BL 已存在,且1≤i ≤bookListLength(BL)。
操作结果:用b 返回图书表BL 中的第i 个数据元素的值。
④按编号查找操作函数:locateById(BL, id)。
初始条件:图书表BL 已存在,id 是给定的一个图书编号。
操作结果:返回图书表BL 中图书编号为id 的数据元素的位序,若这样的数据元素不存在,则返回0。
数据结构 习题与解答

6.2画出和下列已知序列对应的森林F: 森林的先序次序访问为:ABCDEFGHIJKL, 森林的中序次序访问为:CBEFDGAJIKLH, 6.3假设用于通信的电文仅由8个字母组成,字 母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0. 10。 试为这8个字母设计哈夫曼编码。使用0~7 的二进制表示形式是另一种编码方案。对于 上述实例.比较两种方案的优缺点。
14
5.3求下列广义表操作的结果
(1) GetHead[(p,h.w)]; (2) GetTeil[(b,k.p,h)]; (3) GetHead[((a,b),(c,d))]; (4) GetTeil[((a,b),(c,d))]; (5) GetHead[GetTail[((a,b),(c.d))]], (6) GetTail[GetHead[((a,b),(c,d))]]; (7) GetHead[GetTail[GetHead[((a,b),(c.d))]]]; (8) GetTail[GetHead[GetTail[((a,b),(c,d))]]]. 注意:[ ]是函数的符号。
15
答案
5.1 (1) k=2(i-1)+j-1, (l i-j |<=1) (2) i=(k+1) / 3+1, (0<=k<<(3n-1) j=k+1-2(i-1)=k+1-2(k /3) 5.2
16
5.3 (1) p; (2) (k ,y, h); (3) (a, b); (4) ((c, d)); (5) (c, d); (6) (b); (7) b; (3) (d).
17
6.1 一棵深度为H的满k叉树有如下性质: 第H层上的结点都是叶子结点其余各层上每 个结点都有k棵非空子树。如果按层次顺序 从1开始对全部结点编号,间: (1)各层的结点数目是多少? (2)编号为p的结点的父结点(若存在)的编号 是多少? ? (3)编号为P的结点的第i个儿子结点(若存在) 的编号是多少? (4)编号为P的结点有右兄弟的条件是什么? 其右兄弟的编号是多少?
数据结构各章习题及答案

数据结构习题及解答第1章概述【例1-1】分析以下程序段的时间复杂度。
for(i=0;i<n;i++)for(j=0;j<m;j++)A[i][j]=0;解:该程序段的时间复杂度为O(m*n)。
【例1-2】分析以下程序段的时间复杂度。
i=s=0; ①while(s<n){ i++; ②s+=i; ③}解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O(1)。
语句②和语句③构成while循环语句的循环体,它们的执行次数由循环控制条件中s与n的值确定。
假定循环重复执行x次后结束,则语句②和语句③各重复执行了x次。
其时间复杂度按线性累加规则为O(x)。
此时s与n满足关系式:s≥n,而s=1+2+3+…+x。
所以有:1+2+3+…+x ≥n,可以推出:x=x与n之间满足x=f(),所以循环体的时间复杂度为O(),语句①与循环体由线性累加规则得到该程序段的时间复杂度为O()。
【例1-3】分析以下程序段的时间复杂度。
i=1; ①while(i<=n)i=2*i; ②解:其中语句①的执行次数是1,设语句②的执行次数为f(n),则有:。
得:T(n)=O()【例1-4】有如下递归函数fact(n),分析其时间复杂度。
fact(int n){ if(n<=1)return(1); ①elsereturn(n*fact(n-1)); ②}解:设fact(n)的运行时间函数是T(n)。
该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。
由此可得fact(n)的时间复杂度为 O(n)。
习题1一、单项选择题1. 数据结构是指(1. A )。
A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。
A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3. 树形结构是数据元素之间存在一种(3. D )。
(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构作业答案(13章)

1 第一章概论 一、填空题
1、 数据的存储结构可用四种基本的存储方法表示,分别是顺序、 链式 、 索引 和 散列。
2、一个算法具有5个特性: 有穷性 、确定性、可行性,有零个或多个输入、有一个或多个输出 。 3、 数据结构包括数据的 逻辑结构 、存储结构 和 运算(或基本操作)这三个方面的内容。 4、数据结构中评价算法的两个重要指标是 时间 效率和 空间 效率。
5、一个数据结构在计算机中的表示称为 存储结构 。 6、从逻辑上可以把数据结构分为线性结构、非线性结构两大类 7、数据逻辑结构除了集合以外,还包括线性结构、树形结构和 图形结构 。 8、数据的存储结构形式包括顺序存储、链式存储、索引存储和 散列存储。 9、数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)3个方面的内容。 10、算法效率的度量可以分为事先估算和 事后统计法 。
二、单项选择题 1、 数据结构中,与所使用的计算机无关的是数据的是( C ); A、 存储结构 B、 物理结构 C、逻辑结构 D、 物理和逻辑结构 2、算法分析的目的是( C ) A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系 C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性 3、 计算机算法指的是( C ) A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法 4、 计算机算法必须具备输入、输出和( B )等5个特性。 A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性 C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性 5、从逻辑上可以把数据结构分为( C )两大类。 A)动态结构、静态结构 B)顺序结构、链式结构 C)线性结构、非线性结构 D)初等结构、构造型结构 6、下列数据中,( C )是非线性数据结构。 A.栈 B. 队列 C. 完全二叉树 D. 堆 7、算法分析的两个主要方面是( A )。 A) 空间复杂性和时间复杂性 B) 正确性和简明性 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19 习题一 一、选择题 1、数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的(B)和运算的学科。 A.结构 B.关系 C.运算 D.算法 2、在数据结构中,从逻辑上可以把数据结构分成(C)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.逻辑结构和存储结构 3、线性表的逻辑顺序和存储顺序总是一致的,这种说法(B)。树形 A.正确 B.不正确 C.无法确定 D.以上答案都不对 4、算法分析的目的是(C)。 A.找出算法的合理性 B.研究算法的输人与输出关系 C.分析算法的有效性以求改进 D.分析算法的易懂性 二、填空题 1、__数据___是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,___数据_____是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。例如,数学中所用到的整数和实数,文本编辑所用到的字符串等。 2、数据元素是数据的__基本单位_,有些情况下也称为元素、结点、顶点、记录等。 3、__数据项__是数据不可分割的最小单元,是具有独立含义的最小标识单位。例如构成一个数据元素的字段、域、属性等都可称之为__数据项_。 4、简而言之,数据结构是数据之间的__相互关系_,即数据的_组织关系_。 5、数据的逻辑结构是指数据之间的_逻辑关系_。逻辑结构是从_逻辑关系_上描述数据,它与具体存储无关,是独立于计算机的。因此逻辑结构可以看作是从具体问题抽象出来的_数学模型_。 6、数据的__存储结构_指数据元素及其关系在计算机存储器内的表示。__存储结构_是逻辑结构在计算机里的实现,也称之为映像。 7、_数据的运算__是指对数据施加的操作。它定义在数据的逻辑结构之上,每种逻辑结构都有一个__数据的运算___。常用的有:查找、排序、插人、删除、更新等操作。 8、数据逻辑结构可以分为四种基本的类型,_集合_结构中的元素除了仅仅只是同属于一个___集合__,不存在什么关系。 9、数据逻辑结构的四种基本类型中,_线性结构_中的元素是一种一对一的关系,这种结构的特征是:若结构是非空集,则有且只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱和一个直接后继。 10、数据逻辑结构的四种基本类型中,__树型结构_中的元素是一种一对多的关系。 11、图型结构或图状结构是一种__多对多__的关系。在这种逻辑结构中,所有结点均可以有多个前驱和多个后继。 12、有时也可将树型结构、集合和图型结构称为__非线性结构_,这样数据的逻辑结构就可以分为_线性结构_和__非线性结构__两大类。 13、__顺序存储__方式是指逻辑上相邻的结点被存储到物理上也相邻的存储单元中。这种存储结构只存储结点的数值,不存储结点之间的关系,结点之间的关系是通过存储单元的相邻关系隐含的表示出来的。 14、_链接存储_方式是种存储方法,不要求逻辑上相邻的结点在物理上也相邻,即数据元素可以存储在任意的位置上。 15、索引存储方式又可以分为_稠密索引_和__稀疏索引_。若每个结点在索引表中都有 19
一个索引项,则该种索引存储方式称为_稠密索引_;若一组结点在索引表中只对应一个索引项,则索引存储方式称为_稀疏索引_。在_稠密索引中,索引项的地址指示结点所在的位置,而_稀疏索引_中,索引项的地址指示一组结点的起始位置。 16、_散列存储_方式是利用结点关键字的值直接计算出该结点存储单元地址,然后将结点按某种方式存人该地址的一种方法。 17、所谓算法(Algorithm)是对特定问题求解方法和步骤的一种描述,它是指令的一组___有限序列__,其中每个指令表示一个或多个操作。 18、算法的_有穷 _性是指算法必须能够在执行有限个步骤之后结束,并且每个步骤都必须在有穷的时间内完成。 19、算法的__确定 _性是指算法中的每一个步骤必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。并且,在任何条件下,算法只能有惟一的一条执行路径,即只要输人是相同的就只能得到__相同__的输出结果。 20、算法的__可行__性又称为算法的能行性,是指算法中描述的操作是可以通过已经实现的基本运算执行__有限__次来实现,即算法的___具体实现_应该能够被计算机执行。 21、判断一个算法的好坏主要以下几个标准:__正确性_、__可读性_、__健壮性_、__效率__。 22、算法分析是对一种算法所消耗的计算机资源的估算,其中包括计算机__运行时间_的长短和___所占据空间__的大小。 23、空间复杂度(SPace ComPlexity)也是度量一个算法好坏的标准,它所描述的是算法在运行过程中所占用__存储空间___的大小。 三、判断题 1、顺序存储方式只能用于存储线性结构。(×)树形 2、数据元素是数据的最小单位。(×)数据项 3、算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言描述,则算法实际上就是程序了。(×) 4、数据结构是带有结构的数据元素的集合。(√) 5、数据的逻辑结构是指各元素之间的逻辑关系,是用户根据需要而建立的。(√) 6、数据结构、数据元素、数据项在计算机中的映像分别称为存储结构、结点、数据域。(√) 7、数据的物理结构是指数据在计算机中实际的存储形式。(√) 8、具有存取任一元素的时间相等这一特点的存储结构称为随机存取结构。(√) 四、综合题 1、用大O形式表示下面算法的时间复杂度: for(i=0;i<m;i十十) for(j=0;j<n;j++) A[i][j]=i*j; O(m×n) 2、写出下面算法的时间复杂度: i=0; s=0; while(s<n) { i++; s+=i; } O(n)
S=0 S=1 S=1+2 S=1+2+3 ........ S=1+2+3+.....+(m-1) m*(m-1)/219
3、写出以下算法的时间复杂度: for(i=0; i<m; i++) for(j=0 ; j<t; j++) c[i][j]=0; for(i=0;i<m;i++) for(j=o; jfor(k=0;k<n;k++) c[i][j]+=a[i][k]*b[k][j]; O(m×n×t)。 4、写出下面算法的时间复杂度: i=1; while(i<=n) i=i*3; O(log3(n)) 5、求下面函数中各条语句的频度和算法的时间复杂度: prime(int n) { int i=2; while ((n%i)!=0&&i<sqrt(n) ) i++; if(i>sqrt(n) ) printf(”%d is a prime number.\n”,n); else printf(”%d is not a prime number.\n”,n);} O(n) 6、fact(n) { if(n<=1) return 1; else return (n*fact(n-1)); } O(n)
i=1*(3^m-1)3^mO(log3(n)) 19
习题二 一、选择题 1.在一个长度为n的顺序表中删除第i个元素(0<iA.n-i B.n-i+1 C.n-i+1 D.i+1 2.从一个具有n个元素的线性表中查找其值等于x的结点时,在查找成功的情况下,需平均比较( D )个元素结点。 A.n/2 B.n C.(n-1)/2 D.(n +1)/2 3.对一个具有n个元素的线性表,建立其单链表的时间复杂度为( A )。 A.O(n) B.O(1) C.O(n2) D.O(long2n) 4.线性表采用链式存储时,其地址( D )。 A. 必须是连续的 B.一定是不连续的 C.部分地址必须连续 D.连续与否均可以 5.在一个具有n个结点的有序单链表中插人一个新的结点,使得链表仍然有序,该算法的时间复杂度是(D )。 A.O(long2n) B.O(l) C.O(n2) D.O(n) 6.线性表是( A)。 A.一个有限序列,可以为空 B.一个有限序列,不可以为空 C.一个无限序列,可以为空 D.一个无限序列,不可以为空 7.在一个长度为n的顺序表中,向第i个元素(0需要向后移动( B )个元素。 A.n-i B.n-i+1 C.n-i-1 D.i+1 8.如果某链表中最常用的操作是取第i个结点及其前驱,则采用( B )存储方式最节省时间。 A.单链表 B.双向链表 C.单循环链表 D.顺序表 9.一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是(B)。 A.98 B.100 C.102 D.106 10.下列排序方法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( C )。 A.堆排序 B.冒泡排序 C.直接插人排序 D.快速排序 11.对线性表进行二分查找时,要求线性表必须(C)。 A.以顺序方法存储 B.以链接方法存储 C.以顺序方法存储,且结点接关键字有序排列 D.以链接方法存储,且结点接关键字有序排列 12.在顺序存储的线性表(a1……an)中,删除任意一个结点所需移动结点的平均移动次数为( C ) (n(n+1))/2*1/n A.n B.n/2 C.(n-1)/2 D.(n+l)/2 13.在线性表的下列存储结构中,读取元素花费的时间最少的是( D)。 A.单链表 B.双链表 C.循环链表 D.顺序表 14.若某链表中最常用的操作为在最后一个结点之后插入一个结点和删除最后一个结点,则采用(D)存储方式最节省时间。 A.双链表 B.单链表 C.单循环链表 D.带头结点的双循环链表 15.已知L是没有头结点的单链表的头指针,且p所指向的结点既不是第一个结点,也不是最后一个结点,试从下列提供的语句中选取出合适的语句序列。(将语句序号填入横线