2015数据结构复习-C++版-学生
(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。
1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。
假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。
3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。
现要求采⽤循环链表结构设计⼀个算法,模拟此过程。
4、编程实现单链表的就地逆置。
23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。
3、假设以I和O分别表⽰⼊栈和出栈操作。
栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。
(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。
若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。
5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(⼊栈满等)给出相应的信息。
设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。
2015江苏省数据结构(C++)理论考试试题及答案

1、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构B)线性结构和非线性结构C)紧凑结构和非紧凑结构D)内部结构和外部结构2、以下属于顺序存储结构优点的是( A )。
A) 存储密度大B) 插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示3、n个顶点的图的最小生成树必定( D),是不正确的描述。
A)不唯一 B)权的总和唯一C)不含回路 D)有n条边4、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列C)顺序队列 D)链队列5、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。
A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值6、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;C)p->next=s->next; s->next=p D)p->next=s; s->next=q;7、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)8、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e9、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。
A) 5,4,3,2,1,6 B) 2,3,5,6,1,4C) 3,2,5,4,1,6 D) 1,4,6,5,2,310、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列C)顺序队列 D)链队列11、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。
数据结构_(严蔚敏C语言版)_学习、复习提纲.

期末复习 第一章 绪论 复习1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。
2、算法分析的两个主要方面是空间复杂度和时间复杂度。
3、数据元素是数据的基本单位。
4、数据项是数据的最小单位。
5、数据结构是带结构的数据元素的集合。
6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。
基础知识数据结构算 法概 念逻辑结构 存储结构数据运算数据:计算机处理的信息总称 数据项:最小单位 数据元素:最基本单位数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。
概念:数据元素之间的关系 线性结构:一对一非线性结构 树:一对多 图:多对多顺序存储结构 链表存储结构 索引。
散列。
算法描述:指令的有限有序序列算法特性 有穷性 确定性 可行性 输入 输出 算法分析时间复杂度 空间复杂度第二章 线性表 复习1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针2、线性表采用顺序存储,必须占用一片连续的存储单元3、线性表采用链式存储,便于进行插入和删除操作4、线性表采用顺序存储和链式存储优缺点比较。
5、简单算法第三章 栈和队列 复习线性表顺序存储结构链表存储结构概 念基本特点基本运算定义逻辑关系:前趋 后继节省空间 随机存取 插、删效率低 插入 删除单链表双向 链表 特点一个指针域+一个数据域 多占空间 查找费时 插、删效率高 无法查找前趋结点运算特点:单链表+前趋指针域运算插入删除循环 链表特点:单链表的尾结点指针指向附加头结点。
运算:联接1、 栈和队列的异同点。
2、 栈和队列的基本运算3、 出栈和出队4、 基本运算第四章 串 复习栈存储结构栈的概念:在一端操作的线性表 运算算法栈的特点:先进后出 LIFO初始化 进栈push 出栈pop队列顺序队列 循环队列队列概念:在两端操作的线性表 假溢出链队列队列特点:先进先出 FIFO基本运算顺序:链队:队空:front=rear队满:front=(rear+1)%MAXSIZE队空:frontrear ∧初始化 判空 进队 出队取队首元素第五章 数组和广义表 复习串存储结构运 算概 念顺序串链表串定义:由n(≥1)个字符组成的有限序列 S=”c 1c 2c 3 ……cn ”串长度、空白串、空串。
《数据结构C语言》考研复习题库

《数据结构C语言》考研复习题库一、选择题1、在一个具有 n 个单元的顺序栈中,假定以地址低端(即 0 单元)作为栈底,以 top 作为栈顶指针,当做出栈处理时,top 变化为()。
A top 不变B top = 0C topD top++答案:C解释:在顺序栈中,出栈操作会使栈顶指针 top 减 1,即 top。
2、一个队列的入队序列是 1,2,3,4,则队列的输出序列是()。
A 4,3,2,1B 1,2,3,4C 1,4,3,2D 3,2,4,1答案:B解释:队列是先进先出的数据结构,入队顺序为 1,2,3,4,那么出队顺序也为 1,2,3,4。
3、串是一种特殊的线性表,其特殊性体现在()。
A 可以顺序存储B 数据元素是一个字符C 可以链式存储D 数据元素可以是多个字符答案:B解释:串的数据元素是字符,这是它与一般线性表的区别。
4、设有一个 10 阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,a11 为第一元素,其存储地址为 1,每个元素占一个地址空间,则 a85 的地址为()。
A 33B 32C 18D 40答案:A解释:对于对称矩阵,只存储其下三角或上三角部分。
对于一个 n阶对称矩阵,若以行序为主存储下三角部分,aij 的存储位置为 i(i 1)/2 + j 1。
所以 a85 的地址为 8(8 1)/2 + 5 1 = 33。
5、一棵完全二叉树共有 700 个结点,则在该二叉树中有()个叶子结点。
A 350B 349C 351D 不确定答案:C解释:根据完全二叉树的性质,度为 1 的结点个数最多为 1 个。
设n0 为叶子结点个数,n1 为度为 1 的结点个数,n2 为度为 2 的结点个数。
则 n = n0 + n1 + n2 ,n 1 = 2n2 + n1 。
因为 n = 700 ,且 n1 为 0或 1 ,通过计算可得 n0 = 351 。
二、填空题1、数据的逻辑结构被分为_____、_____、_____和_____四种。
2015考研计算机数据结构试题及答案

2015年考研必备资料2015年考研计算机数据结构试题及答案目录2015年考研计算机数据结构试题及答案(1) (2)2015年考研计算机数据结构试题(1) (2)2015年考研计算机数据结构试题答案(1) (5)2015年考研计算机数据结构试题及答案(2) (6)2015年考研计算机数据结构试题(2) (6)2015年考研计算机数据结构试题答案(2) (9)2015年考研计算机数据结构试题及答案(3) (11)2015年考研计算机数据结构试题(3) (11)2015年考研计算机数据结构试题答案(3) (13)2015年考研计算机数据结构试题及答案(4) (15)2015年考研计算机数据结构试题(4) (15)2015年考研计算机数据结构试题答案(4) (17)2015年考研计算机数据结构试题及答案(5) (19)2015年考研计算机数据结构试题(5) (19)2015年考研计算机数据结构试题答案(5) (21)2015年考研计算机数据结构试题及答案(1)2015年考研计算机数据结构试题(1)一、选择题(24分)1.下列程序段的时间复杂度为( )。
i=0,s=0; while (s(A) O(n1/2) (B) O(n1/3) (C) O(n) (D) O(n2)2.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。
(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表3.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为( )。
(A) s->next=p->next;p->next=-s; (B) q->next=s; s->next=p;(C) p->next=s->next;s->next=p; (D) p->next=s;s->next=q;4.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为( )。
山西省2015年专升本选拔考试(C程序设计数据结构)历年真题详解

山西省 2015年专升本选拔考试C 程序设计数据结构(C语言版)说明:1.本试卷分C程序设计和数据结构(C语言版)两部分,各占100分,满分200 分,考试时间150分钟。
2.答卷前先填写密封线内的项目和座位号,答案直接写在试卷上。
第一部分C程序设计一、单项选择题【本大题共10小题,每小题1分,共计10分。
在每小题的四个备选答案中,只有一个答案是正确的,请将代表正确答案的字母填入下列表格内)1.下列标识符中,不合法的标识符是(B )A.CHARB.-abC.SumD.a_b2.下列不是合法字符常量的是(B )A.‘+’B. "m"C.‘?’D.‘6’3.假设定义 int x,y;且执行scanf("%d%3d",&x,&y);语句时,从第一列开始输入数据1234 56789<回车>,则x和y的值分别是(A )A.1234 567B.1234 56789C.1 234D.1234 894.执行下面程序时,将M,N分别赋给c,d,正确的输入是(B )main({char c,d;scanf(“c:%c;d:%c”,&c,&d);}A.M NB. c:M;d:NC.M;ND.c:M d:N5. 在下列运算符中,优先级最低的运算符是(C )A.!=B.!C. &&D.++6. 若a=1,b=2,c=3,d=4,则条件表达式 a<b?a:c<d?c:d 的结果是(A)A.1B.2C.3D.47. 以下程序输出结果是(D )main{int i=8,j=8;printf("%d,%d\n",++i, j--);A.8,7B.8,8C. 9,7D.9,88.在C语言的语句中,用作判断的表达式是(D )A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式9.在C语言中,while 和 do…while循环的主要区别是(A )A.do……while 的循环体至少无条件执行一次B.while 循环的控制条件比do…while的循环控制条件严格C.do…while允许从外部转到循环体内D.do…while的环体不能是复合语句10.下列定义语句不正确的是(C )A.double x[5]={2.0,4.0,6.0,8.0,10.0};B.char c1[]={‘1’,‘2’,‘3’,’4’, ‘5’,‘1’};C. int yf[5]=(0,1,3,5,7,9);D.char c2[]={‘\10’,’\xa’,’\x8’};二、填空题(本大题共5小题,每空2分,共计12分。
数据结构C语言版部分习题及答案[2]
![数据结构C语言版部分习题及答案[2]](https://img.taocdn.com/s3/m/e044a021e87101f69e319522.png)
第二章习题与解答一判断题1.线性表的逻辑顺序与存储顺序总是一致的。
2.顺序存储的线性表可以按序号随机存取。
3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。
4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。
5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
7.线性表的链式存储结构优于顺序存储结构。
8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。
9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
二单选题 (请从下列A,B,C,D选项中选择一项)1.线性表是( ) 。
(A) 一个有限序列,可以为空;(B) 一个有限序列,不能为空;(C) 一个无限序列,可以为空;(D) 一个无序序列,不能为空。
2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的()个元素。
(A) n/2 (B) n+1/2 (C) n -1/2 (D) n3.线性表采用链式存储时,其地址( ) 。
(A) 必须是连续的;(B) 部分地址必须是连续的;(C) 一定是不连续的;(D) 连续与否均可以。
4.用链表表示线性表的优点是()。
(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同5.某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用( )存储方式最节省运算时间。
(A)单链表(B)双链表(C)单循环链表(D)带头结点的双循环链表6.循环链表的主要优点是( )。
(A)不在需要头指针了(B)已知某个结点的位置后,能够容易找到他的直接前趋(C)在进行插入、删除运算时,能更好的保证链表不断开(D)从表中的任意结点出发都能扫描到整个链表7.下面关于线性表的叙述错误的是( )。
数据结构(C语言版)复习题

一、单项选择题:1、树形结构不具备这样的特点:()A. 每个节点可能有多个后继(子节点)B. 每个节点可能有多个前驱(父节点)C. 可能有多个内节点(非终端结点)D. 可能有多个叶子节点(终端节点)2、二叉树与度数为2的树相同之处包括()。
A. 每个节点都有1个或2个子节点B. 至少有一个根节点C. 至少有一个度数为2的节点D. 每个节点至多只有一个父节点3、一棵完全二叉树有999 个结点,它的深度为()。
A.9 B.10 C.11 D.124、在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()A. s->next=p;p->next=s;B. s->next=p->next;p->next=s;C. s->next=p->next;p=s;D. p->next=s;s->next=p;5、对于一棵具有n个结点、度为5的树来说,()A. 树的高度至多是n-3B. 树的高度至多是n-4C. 树的高度至多是nD. 树的高度至多是n-56、在顺序队列中,元素的排列顺序()。
A. 由元素插入队列的先后顺序决定B. 与元素值的大小有关C. 与队首指针和队尾指针的取值有关D. 与数组大小有关7、串是一种特殊的线性表,其特殊性体现在()。
A.可以顺序存储 B.数据元素是一个字符C.可以链式存储 D.数据元素可以是多个字符若8、顺序循环队列中(数组的大小为 6),队头指示 front 和队尾指示 rear 的值分别为 3和 0,当从队列中删除1个元素,再插入2 个元素后,front和 rear的值分别为()。
A.5 和1 B.2和4 C.1和5 D.4 和29、一棵完全二叉树上有1001 个结点,其中叶子结点的个数为()。
A.250 B.500 C.254 D.50110、已知一个有向图如下图所示,则从顶点a出发进行深度优先遍历,不可能得到的DFS序列为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构(C++版)复习要点考试说明:考试时间为120分钟,总分100分。
考试题型为:一、单选题:(每小题1分,本大题共10分)二、填空题:(每空2分,本大题共20分)三、简答题:(每小题5分,本大题共50分)四、算法设计题:(每小题10分,本大题共20分)第一章绪论本章主要介绍了一些基本概念。
对于本章内容的掌握主要以概念为主。
主要知识要点1、理解数据、数据元素、数据项、数据对象、数据类型、数据结构的概念。
2、掌握如何用二元组来表示一个数据结构。
掌握数据的四类基本逻辑结构(集合、线性结构、树型结构、图状或网状结构)。
3、理解顺序存储方法和链式存储方法是怎样存储数据的。
4、时间复杂度和空间复杂度(给程序能写出复杂度),常用操作的时间复杂度。
例题:1. 设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是(D )。
A.线性结构B. 树型结构C. 物理结构D. 图型结构2. 下面程序的时间复杂为(B )for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;}A. O(n)B. O(n2)C. O(n3)D. O(n4)3. 数据的物理结构主要包括____顺序___和___链式____两种情况。
4. 下面程序段的时间复杂度是i=s=0; while(s<n) { i++; s+=i; }第一次执行完s+=i, s = 1第二次s = 3 = 1+2第三次s = 6 = 1+2+3第四次s = 10 = 1+2+3+4第k次s=1+2+3+4+...+k == k*(k+1)/2那么当k*(k+1)/2 >=n 的时候停止,即k =关于n的表达式是根号的, n1/2第二章线性表本章主要介绍了线性表的定义、存储方式的描述和基本运算以及实现算法。
要求掌握并能灵活应用概念及性质。
主要知识要点1、掌握线性表定义、逻辑特性、空表、文件、前驱元素、后继元素的概念。
2、掌握顺序存储及顺序表的定义。
掌握顺序存储结构的优缺点,插入删除操作算法。
数据元素的存储位置取决于第一个数据元素的存储位置LOC(a i) = LOC(a1) + (i-1)×C 3、掌握线性链表的定义。
掌握链式存储结构的优缺点,单链表插入删除操作算法,单链表、双向循环链表的插入与删除操作,头结点的作用,单链表的判空条件。
4、掌握静态链表的概念。
例题1、顺序表中逻辑上相邻的元素的物理位置(一定)相邻。
单链表中逻辑上相邻的元素的物理位置(不一定)相邻。
2、线性表的顺序存储、链式存储有哪些特点?3、线性表的两种存储结构其中(顺序)存储密度较大;(顺序)存储利用率较高;(顺序)可以随机存取;(链式)不可以随机存取;(链式)插入和删除操作比较方便。
4、设指针变量p指向单链表中结点A前驱,若删除单链表中结点A,则需要修改指针的操作序列为(C )。
A. q=p->next;p->data=q->data;p->next=q->next;free(q);B. q=p->next;q->data=p->data;p->next=q->next;free(q);C. q=p->next;p->next=q->next;free(q);D. q=p->next;p->data=q->data;free(q);5、对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( B )A.head==NULL B.head->next==NULLC.head->next==head D.head!=NULL6、在一个单链表中,已知q所指结点是p所指结点的前趋结点,若在q和p之间插入S结点,则执行( C )。
A. S->next=p->next; p->next=S; B.p->next=S->next; S->next=p;C. q->next=S; S->next=p;D. p->next=S; S->next=q;7、在一个长度为n的向量中删除第i个元素(1<=i<=n)时,须向前移动(n-i )个元素。
8、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表9、编写算法实现顺序表的就地逆置,即要求利用原顺序表的存储单元,把数据元素序列(a0,a1,…,a n-1)逆置为(a n-1,…,a1,a0)。
10、设计在单链表中删除具有某种特性的结点的算法。
11、在如下数组AAdatanext12、设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。
栈和队列本章主要介绍了栈和队列的定义、性质及对栈和队列进行操作的特殊性。
要求掌握并能灵活应用概念及性质。
主要知识要点1、掌握栈的概念、特点:栈顶、栈底、进栈及出栈。
掌握顺序栈/链栈的基本运算:初始化、入栈、出栈、取栈顶和判空,栈的入栈和出栈的前提条件(判空和判满)2、掌握队列的概念、特点,掌握循环队列/链队列队列的基本运算:初始化、入队、出队、取队头顶和判空。
入队和出队的前提条件(判空和判满)顺序循环队列的front和rear指针的变化规律(出队front+1,入队rear+1)、求队列长度链队列的基本操作:插入、删除、访问、查找、求队列长度3、栈和队列特点的比较,通过给出进入栈或者队列的元素序列,能够求出栈或者队列元素的序列。
4、栈和队列的应用举例,应用栈和队列的求解问题(如进制转换、判断括号匹配、……)。
例题1、栈是仅在(表一端)进行插入删除操作的线性表。
允许插入删除的一端为(栈顶),另一端为(栈底)。
2、栈有两种存储表示方法:(顺序栈)和(链栈)。
3、链栈s在进行出栈操作时首先要判断(栈是否为空)。
4、栈和队列的逻辑结构都是(线性表)。
5、一个栈的输入序列为1 2 3 4 5,则下列序列中是栈的输出序列的是(A )。
A.2 3 4 1 5 B. 5 4 1 3 2 C. 3 1 2 4 5 D. 1 4 2 5 36、一个栈的输入序列为12345,则下列序列中不可能是栈的输出序列的是(B )a、23415b、54132c、23145d、154327、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( A )。
A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m串本章主要介绍了串的定义、串的几种存储方法,串的基本运算及实现方法。
掌握串的概念及性质。
主要知识要点1、掌握串的定义,存储方法,空串与空格串区别、子串、主串。
2、如何判断两个串是否相等。
3、掌握串有静态和动态两种存储结构方法。
4、掌握串有哪些基本运算(串连接、串复制、串求长度函数)例题1、串是()。
2、空串是指()。
3、如何判断一个串是另外一个串的子串。
4、如何判断两个串相等。
5、串有哪两种存储方式(顺序和链式)。
6、串的长度是指(串中字符的个数)。
7、空串与空格串的区别是什么?8、设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s, i, j)返回串s的从序号i开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1, 2, len(s2)), subs(s1, len(s2), 2))的结果串是:( D )A)BCDEF B)BCDEFG C)BCPQRST D) BCDEFEF数组和广义表本章主要介绍了数组的定义及基本运算,数组的存储结构及特殊矩阵的压缩存储,广义表的概念、基本运算及存储结构。
通过本章内容的学习能够解决具体的问题。
主要知识要点1、掌握数组的定义、性质及数组的基本操作有哪些。
2、理解数据的顺序存储的含义,矩阵的顺序存储表示。
⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=010000000000010010100000010100001010Edge 3、掌握LOC[i ,j]=LOC[0,0]+(b2*i+j )*L 。
按行或列优先进行存储时,数组下标和元素存储地址的关系公式4、n 阶对称矩阵、上/下三角矩阵、对角线矩阵的压缩存储的公式(见课件),稀疏矩阵的存储方法(三元组)、矩阵的转置方法5、掌握广义表的定义、如何求广义表的深度、长度、表头、表尾及如何利用函数HEAD 和TAIL 来取出广义表内的某个元素的内容;画出广义表的头尾链表存储结构。
例题1、已知一个6⨯6稀疏矩阵如下所示,写出它的三元组线性表;2、已知一维数组A采用顺序存储结构,每个元素占4个存储单元,如果第一个元素的地址为100,则A[10]的地址是( 10×4+100=140 ) ;如果第九个元素的地址为144,则该数组的首地址是( 144-9×4=108 )。
3、二维数组A[10][20]采用行序为主方式存储,每个元素占一个存储单元,并且A[0][0]的存储地址为200,则A[6][12]的地址为( (5×20+12)×1+200 )。
4、n 阶对称矩阵压缩存储在一维数组V中,V数组的下标范围是( 0 .. n(n-1)/2-1 )。
5、把对称矩阵A[1..5,1..5] 压缩存储在一维数组M[1..15]中,元素A[4,3]存储在M 中的下标是( (1+2+3+3)=9 )。
⑴4 ⑵3 ⑶9 ⑷126、取出广义表:LS=(a,b,(c,d,e),(f,g))元素c 的操作是(H(H(T(T(s)))) )。
7、已知广义表LS =((a,b,c),(d,e,f)),运用head 和tail 函数取出LS 中原子e 的运算是( A )。
A. head(tail(head(tail(LS)))B. tail(head(LS))C. head(tail(tail(head(LS))))D. head(tail(LS))第四章 树本章主要介绍了树、二叉树的定义、性质、存储结构及其各种操作,树和森林与二叉树之间的转换关系。