2第2章 数据结构

合集下载

数据结构第二章课后答案

数据结构第二章课后答案

数据结构第二章课后答案数据结构第二章课后答案1. 线性表1.1 数组实现线性表Q1. 请说明线性表的定义,并结合数组实现线性表的特点进行解释。

线性表是由n(n≥0)个数据元素构成的有序序列,其中n表示线性表的长度。

数组实现线性表的特点是使用一组具有相同数据类型的连续存储空间存储线性表中的元素,通过下标访问和操作元素。

A1. 线性表的定义指出,线性表是由若干个数据元素组成的有序序列。

具体地,在数组实现线性表中,我们将元素存储在一组连续的内存空间中,通过下标访问和操作元素。

由于数组的存储空间具有连续性,这样的实现方式可以在O(1)的时间复杂度下进行元素的访问和修改操作。

1.2 链表实现线性表Q2. 请说明链表实现线性表的特点,并与数组实现进行比较。

链表实现线性表的特点是通过指针将线性表中的元素按照节点的形式连接起来,每个节点包含了存储的元素和指向下一个节点的指针。

与数组实现相比,链表的插入和删除操作更为高效,但是访问某个位置的元素需要从头开始遍历,时间复杂度较大。

A2. 链表实现线性表的特点是通过使用节点和指针将线性表中的元素连接起来。

每个节点中包含了一个存储的元素和指向下一个节点的指针。

链表的插入和删除操作的时间复杂度为O(1),因为只需要改变指针的指向即可。

但是,访问某个位置的元素需要从头开始遍历链表,所以时间复杂度为O(n)。

2. 栈和队列2.1 栈的定义和基本操作Q3. 请给出栈的定义和基本操作。

栈是一种特殊的线性表,它只能在表的一端进行插入和删除操作,该端称为栈顶。

栈的基本操作包括入栈(push)和出栈(pop),分别用于将元素压入栈和将栈顶元素弹出。

A3. 栈是一种特殊的线性表,它只能在表的一端进行插入和删除操作。

这个特定的一端称为栈顶,而另一端称为栈底。

栈的基本操作包括入栈(push)和出栈(pop)。

入栈操作将一个元素压入栈顶,出栈操作将栈顶元素弹出。

2.2 队列的定义和基本操作Q4. 请给出队列的定义和基本操作。

数据结构课后习题及解析第二章

数据结构课后习题及解析第二章
利用单向循环链表作为存储结构模拟此过程,按照出列顺序打印出各人的编号。
例如m的初值为20;n=7,7个人的密码依次是:3,1,7,2,4,8,4,出列的顺序为6,1,4,7,2,3,5。
第二章答案
约瑟夫环问题
约瑟夫问题的一种描述为:编号1,2,…,n的n个人按顺时针方向围坐一圈,每个人持有一个密码(正整数)。一开始任选一个报数上限值m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。试设计一个程序,求出出列顺序。利用单向循环链表作为存储结构模拟此过程,按照出列顺序打印出各人的编号。
9.假设有一个循环链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表某个结点的指针,试编写算法在链表中删除指针s所指结点的前趋结点。
10.已知有单链表表示的线性表中含有三类字符的数据元素(如字母字符、数字字符和其它字符),试编写算法来构造三个以循环链表表示的线性表,使每个表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间,头结点可另辟空间。
r=p;
}
}
r->next=L->next;
printf("请输入第一个报数上限值m(m>0):");
scanf("%d",&m);
printf("*****************************************\n");
printf("出列的顺序为:\n");
q=L;
p=L->next;
7.试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1, a2..., an)逆置为(an, an-1,..., a1)。

数据结构--第二章考试题库(含答案)

数据结构--第二章考试题库(含答案)

第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2分)】A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个()的有限序列(n>0)。

【清华大学 1998 一、4(2分)】A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

【哈尔滨工业大学 2001二、1(2分)】A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

【南开大学 2000 一、3】A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学 2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用()存储方式最节省运算时间。

【北京理工大学 2000一、1(2分)】A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。

数据结构课件第2章线性表

数据结构课件第2章线性表

27
线性表的顺序存储结构适用于数据 元素不经常变动或只需在顺序存取设备 上做成批处理的场合。为了克服线性表 顺序存储结构的缺点,可采用线性表的 链式存储结构。
28
2.3 线性表的链式存储结构
线性表的链式存储表示 基本操作在单链表上的实现 循环链表 双向链表 线性表链式存储结构小结
2.3.1 线性表的链式存储表示 29
2.1.1 线性表的定义
6
一个线性表(linear_list)是 n(n≥0)个具有相同属性的数 据元素的有限序列,其中各元素有着依次相邻的逻辑关系。
线性表中数据元素的个数 n 称为线性表的长度。当 n = 0 时 该线性表称为空表。当 n > 0 时该线性表可以记为:
(a1,a2,a3,…,ai,…,an)
数据域 指针域
结点 data next
31
(2) 线性表的单链表存储结构
通过每个结点的指针域将线性表中 n 个结点按其逻辑顺序链 接在一起的结点序列称为链表,即为线性表 ( a1, a2, a3, …, ai, …, an ) 的链式存储结构。如果线性链表中的每个结点只有一个指针域, 则链表又称为线性链表或单链表 (linked list)。
17
(2) 算法编写
#define OK 1
#define ERROR 0
Int InsList ( SeqList *L, int i, ElemType e ) /*在顺序线性表 L 中第 i 个位置插入新的元素 e。*/ /* i 的合法值为 1≤i ≤L->last+2*/ {
int k; if ( i < 1) ||( i > L->last+2)) /*首先判断插入位置是否合法*/ { printf(“插入位置i值不合法”);

《数据结构C语言版》----第02章

《数据结构C语言版》----第02章

同理可证:顺序表删除一元素的时间效率为: 同理可证:顺序表删除一元素的时间效率为: T(n)=(n-1)/2 ≈O(n) O(n) (
插入效 E = ∑ is 率: i=0
n
1 n n pi ( n − i ) = ∑ (n − i) = 2 n + 1 i=0
n −1 删除效 1 n −1 n −1 Edl = ∑ qi (n − i ) = ∑ (n − i ) = 率: n i =0 2 i =0
2.2 线性表的顺序表示和实现
顺序存储结构的线性表称作顺序表 1.顺序表的存储结构 顺序表的存储结构
实现顺序存储结构的方法是使用数组。数组把线性表 实现顺序存储结构的方法是使用数组。 使用数组 的数据元素存储在一块连续地址空间的内存单元中, 连续地址空间的内存单元中 的数据元素存储在一块连续地址空间的内存单元中,这样 线性表中逻辑上相邻的数据元素在物理存储地址上也相邻。 线性表中逻辑上相邻的数据元素在物理存储地址上也相邻。 数据元素间的逻辑上的前驱、 数据元素间的逻辑上的前驱、后继逻辑关系就表现在数据 元素的存储单元的物理前后位置上。 元素的存储单元的物理前后位置上。 顺序表的存储结构如图所示
2.线性表抽象数据类型 2.线性表抽象数据类型
数据集合:{ 的数据类型为DataType 数据集合 { a0, a1, … , an-1 }, ai的数据类型为 (1) ListInitiate(L) 初始化线性表 (2) ListLength(L) 求当前数据元素个数 操作集合: 操作集合 (3) ListInsert(L,i,x) 插入数据元素 (4) ListDelete(L,i,x) 删除数据元素 (5) ListGet(L,i,x) 取数据元素
printf("参数 不合法 \n"); 参数i不合法 参数 不合法! return 0;

第二章 数据结构与数据库技术

第二章  数据结构与数据库技术
(2)这种存储结构不能进行随机存取。删除和插入操作 简单省时,存储空间的利用率高,另外表的容量在程序 运行期间也可以动态扩充。所以,链式存储结构一般适 用于插入、删除操作相当频繁的情况。
机械CAD/CAM
三、栈和队列 (一)栈 栈 (stack) 是限制线性表中元素的插入和删除只能在线性表 的同一端进行的一种特殊线性表。允许插入和删除的一端, 为变化的一端,称为栈顶 (Top) ,另一端为固定的一端,称 为栈底(Bottom)。 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的 元素在栈顶,而删除元素刚好相反,最后放入的元素最先删 除,最先放入的元素最后删除。
机械CAD/CAM
3.数据结构(data structure) 是按某种逻辑结构组织起来,按一定的存储表示方式把 组织好的数据存储到计算机中,并对之定义一系列操作运算 的数据的集合。 具体来说,数据结构包含三个方面内容,即数据的逻辑 结构、数据的存储结构(物理结构)和对数据所施加的运算。 数据的逻辑结构、数据的存储结构和对数据所施加的运 算三个方面的关系: (1)数据的逻辑结构独立于计算机,是数据本身所固有的。 (2)存储结构是逻辑结构在计算机存储器中的映像,必须 依赖于计算机。 (3)运算是指所施加的一组操作总称。运算的定义直接依 赖于逻辑结构,但运算的实现必依赖于存储结构。
机械CAD/CAM
存储地址
内存排列
位置序号 0 1 2 … i … n … maxlen-1
b b+d … b+(i-1)×d „ b+(n-1)×d
a1 a2 … ai … an …
图 顺序存储结构示意图 2-2 顺序存储结构示意图
机械CAD/CAM
(二)线性表的物理结构-顺序存储结构实现的运算 存储 读取 修改 { int j; for(j=L.len;j>=i;j--)

第二章基本数据结构及其运算

第二章基本数据结构及其运算

用这种方法查找,每次比较都可抛弃子表一半的 元素,查找效率较高 从该例可看出,数据元素在表中的排列顺序对查 找效率有很大的影响
例2、学生情况登记表信息查询 成绩在90分及以上的学生情况登记表
学 号 970156 970157 970158 970159 970160 970161 970162 970163 970164 … 姓 名 性 别 年龄 20 张小明 男 19 李小青 女 19 赵 凯 男 21 李启明 男 18 刘 华 女 19 曾小波 女 18 张 军 男 20 王 伟 男 19 胡 涛 男 … … … 成绩 86 83 70 91 78 90 80 65 95 … 学 号 姓 名 性别 男 女 男 女 年龄 21 19 19 17 成绩 91 90 95 93 970159 李启明 970161 曾小波 970164 胡 970168 梅 涛 玲
数据结构主要研究和讨论三方面问题:
1、数据元素之间的固有逻辑关系,称为数据的逻辑结构 2、数据元素及其关系在计算机中的存储方式,称为数据的 物理结构或存储结构
3、施加在数据结构上的操作,称为数据结构的运算。数据处 理的本质就是对数据结构施加各种运算,常见的运算有:查找、 排序、插入、删除等。
主要目的是提高数据处理的效率:
§2.1.3 数据结构的图形表示
D中的数据元素用中间标有元素值的方框表示, 称为数据结点(结点);R中的关系用一条有向线段 从前件结点指向后件结点。
例:设数据元素的集合为D = {di |1≤ i≤ 7的整数},画 出对应于下列关系所构成的数据结构的图形
①、R1={(d1,d3),(d1,d7),(d4,d5),(d3,d6),(d2,d4)} ②、R2={(di,dj)|i+j=5} ③、R3={(d2,d3)(d3,d1),(d1,d4),(d4,d6),d6,d5),(d5,d7)}

数据结构第2章典型例题解析

数据结构第2章典型例题解析

第2章线性表典型例题解析一、选择题1.线性表是具有n个(n≥0)的有限序列。

A.表元素B.字符C.数据元素D.数据项【分析】线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,通常记为(a1,a2,…,a n),其中n为表长,n=0时称为空表.【答案】C2.顺序存储结构的优点是.A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示【分析】顺序存储结构是采用一组地址连续的存储单元来依次存放数据元素,数据元素的逻辑顺序和物理次序一致。

因此,其存储密度大。

【答案】A3.带头结点的单链表head为空的判断条件是.A.head==NULL B.head—〉next==NULLC.head->next==head D.head!=NULL【分析】链表为空时,头结点的指针域为空。

【答案】B4.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用存储方式最节省运算时间。

A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表【分析】根据题意要求,该线性表的存储应能够很方便地找到线性表的第一个元素和最后一个元素,A和B都能很方便地通过头指针找到线性表的第一个元素,却要经过所有元素才能找到最后一个元素;选项C双链表若存为双向循环链表,则能很方便地找到线性表的第一个元素和最后一个元素,但存储效率要低些,插入和删除操作也略微复杂;选项D可通过尾指针直接找到线性表的最后一个元素,通过线性表的最后一个元素的循环指针就能很方便地找到第一个元素。

【答案】D5.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用存储方式最节省时间。

A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表【分析】某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算。

因此不需要移动线性表种元素的位置。

根据题意要求,该线性表的存储应能够很方便地找到线性表的任一指定序号的元素和最后一个元素,顺序表是由地址连续的向量实现的,因此具有按序号随机访问的特点.链表需要通过指针才能找到线性表的莫以指定序号的元素,需要一定的时间开销。

数据结构 第2章习题答案

数据结构 第2章习题答案

第2章习题答案一、填空1. 【严题集2.2①】在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

2. 线性表中结点的集合是有限的,结点间的关系是一对一的。

3. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1 个元素。

4. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。

5. 在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。

6. 【严题集2.2①】顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

7. 【严题集2.2①】在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

8.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。

二、判断正误(在正确的说法后面打勾,反之打叉)(×)1. 链表的每个结点中都恰好包含一个指针。

答:错误。

链表中的结点可含多个指针域,分别存放多个指针。

例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。

(×)2. 链表的物理存储结构具有同链表一样的顺序。

错,链表的存储结构特点是无序,而链表的示意图有序。

(×)3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。

错,链表的结点不会移动,只是指针内容改变。

(×)4. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。

错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。

(×)5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。

错,正好说反了。

顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”(×)6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。

数据结构第二章参考答案

数据结构第二章参考答案

数据结构第二章参考答案习题21. 填空题(1)在一个单链表中,已知每个结点包含data和next两个域,q所指结点是p所指结点的直接前驱,若在q和p之间插入s所指结点,则执行(___________)和(___________)操作。

答案:q->next = s; s->next = p; 或 s->next=q->next; q->next = s; (2)表长为n的顺序表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均个数为(___________),删除一个元素需要移动元素的平均个数为(___________)。

答案:n/2 (n-1)/2(3)表长为0的线性表称为(___________)。

答案:空表(4)动态内存管理是操作系统的基本功能之一,其作用是响应用户程序对内存的(___________)和(___________)请求。

答案:申请释放(5)顺序表多采用(___________)实现的,是一种随机存取结构,对表中任意结点存取操作的时间复杂度为(___________)。

而查找链表中的结节,需要从头指针起顺着链扫描才能得到,平均时间复杂度为(___________)。

因此,若线性表的操作主要是进行查找,很少进行插入或删除操作时,采用(___________)表比较合适。

答案:数组 O(1) O(n) 顺序(6)在链表某个位置上进行插入和删除操作,只需要修改(___________)即可,而无须移动大量元素,操作的时间复杂度为(___________)。

而在顺序表中进行插入和删除操作,往往要移动大量元素,平均移动元素的数目为(___________),平均时间复杂度为(___________)。

因此,若对线性表进行频繁的插入和删除操作时,采用(___________)表相对合适。

若插入和删除主要发生在表头和表尾,则采用(___________)表更为合适。

第二章-2 空间数据结构的类型

第二章-2  空间数据结构的类型
▪ ①其Delaunay三角网是唯一的; ②三角网的外边界构成了点集P的凸多边形
“外壳”; ③没有任何点在三角形的外接圆内部,反之,
如果一个三角网满足此条件,那么它就是 Delaunay三角网;
④如果将三角网中的每个三角形的最小角进行 升序排列,则Delaunay三角网的排列得到的数值 最大,从这个意义上说, Delaunay三角网是 “最接近于规则化”的三角网。(等边三角形)
▪ TIN
它角 连 多从
) 。
被 称 为
形 网 是
形 成 的
边 形 中
左 图 中
狄泰 一 各可
洛森 个 已以
尼多 三 知看
三边 角 点出
角 网 (
形 的 对 偶 图
形 网 , 该 三
)
(
参 考 点

来 , 将 泰 森
D-

▪ 用迪洛尼三角网构建泰森多边形
▪ 给定一个D-TIN,对于它的所有内边,连接共 有每条内边的两个三角形的外接圆的圆心,即构 成该TIN的平面点集Voronoi图。 (1)首先构建离散平面点集的D-TIN; (2)然后求取各三角形的外接圆心; (3)对每一个离散点,按顺时针或逆时针方 向连接与其关联的三角形的外接圆心,即得到该 离散点的泰森多边形;

②手扶跟踪数字化法;

③数据结构转换法。
2.3.2 矢量数据结构
矢量数据结构分为以下几种主要类型 ▪ 简单数据结构 ▪ 拓扑数据结构 ▪ 曲面数据结构
1)简单数据结构 a.面条(Spaghetti方式)在简单数据结构中,空间数据按 照以基本的空间对象(点、线、多边形)为单位进行单独 组织,不含有拓扑关系数据,最典型的是面条(Spaghetti 方式)

第二章空间数据结构

第二章空间数据结构

法 11112222
6 11112222
GIS 1 1 1 1 1 2 2 2
7 11111222
11111222 8 1 1 1 1 1 2 2 2

栅格数据结构
理 信
2.3.6 栅格数据存储的编码
息 • 如果一个多边形(或制图单元)内的每个像元
系 都具有相同的属性值,就有可能大大节省栅格
统 数据的存储需要量,关键是恰当地设计数据结

栅格数据结构
理 信 2.3.4 栅格数据的组织方法
息 1.以像元为序。记录象元坐标和各层属性值。节省了许多存储空间,因为

N层中实际上只存了1层的象元坐标。如图a
统 2.以层为基础。每一层又以象元为序记录它的坐标和属性值,一层记录完

后再记录第二层。这种方法较为简单,但需要的存储空间最大。如图b

栅格数据的建立途径
理 信
1、 手工获取,专题图上划分均匀网格,逐个决定其网 格代码。
息 系
2、扫描仪扫描专题图的图像数据{行、列、颜色(灰 度)},定义颜色与属性对应表,用相应属性代替相应颜
统 色,得到(行、列、属性)再进行栅格编码、存贮,即得
原 该专题图的栅格数据。
理 3、 由矢量数据转换而来。
与 4、 遥感影像数据,对地面景象的辐射和反射能量的扫 方 描抽样,并按不同的光谱段量化后,以数字形式记录下来 法 的象素值序列。
GIS 5、 格网DEM数据,当属性值为地面高程,则为格网 DEM,通过DEM内插得到。

Google earth 卫星地图数据转换为栅格数据








数据结构第2章线性表A

数据结构第2章线性表A
15
在线性表的第i个位臵前插入一个元素的示意图如下:
1 2 3 4 插入25 5 12 1
12
13 21
13
21 24 28 30 42 77
2
3 4 5 6 7 8
24
25
6
7 8
28
30 42 77
9
16
3)删除
删除线性表的第i个位臵上的元素
实现步骤: 将第i+1 至第n 位的元素向前移动一个位臵; 表长减1。 注意:事先需要判断,删除位臵i 是否合法? 应当符合条件:1≤i≤n 或 i=[1, n] 核心语句: for ( j=i+1; j<=n; j++ )
18
2.2.3 顺序表的运算效率分析
时间效率分析:
算法时间主要耗费在移动元素的操作上,因此 计算时间复杂度的基本操作(最深层语句频度) T(n)= O (移动元素次数) 而移动元素的个数取决于插入或删除元素的位臵.

讨论1:若在长度为 n 的线性表的第 i 位前 插入一个元素, 则向后移动元素的次数f(n)为: f(n) = n – i + 1
例2 分析学生情况登记表是什么结构。
学号 姓名 性别 年龄 班级
0406010402
0406010405 0406010406 0406010410 0406010413 :
陈杰
邓博 管杰 黄腾达 李荣智 : : :
2004级计软04-1班
2004级计软04-1班 2004级计软04-1班 2004级计软04-1班 2004级计软04-1班 :
InitList( &L ); DestoryList( &L ); //建空表,初始化 //撤销表,释放内存

数据结构第二章习题

数据结构第二章习题

数据结构第二章习题第2章线性表一、单选题1.线性表是具有n个_________的有限序列。

a、表元素B.字符C.数据元素D.数据项2。

线性表格是。

a.一个有限序列,可以为空b.一个有限序列,不可以为空c.一个无限序列,可以为空d.一个无限序列,不可以为空3.线性表采用链表存储时,其地址_________。

a、 U4。

列表中不连续的部分必须是U4。

a.可随机访问任一结点b.插入删除不需要移动元素c.不必事先估计存储空间d.所需空间与其长度成正比5.设线性表有n个元素,以下操作中,_________在顺序表上实现比在链表上实现效率更高。

a、输出I(1≤ 我≤ n) th元素值b.交换第1个元素与第2个元素的值c.顺序输出这n个元素的值d、输出与线性表中给定值x相等的元素序列号6.设线性表中有2n个元素,以下操作中,_________在单链表上实现要比在顺序表上实现效率更高。

a.删除指定的元素b、在最后一个元素后插入新元素。

C.按顺序输出前k个元素d.交换第i个元素和第2n-i-1个元素的值(i=0,1…,n-1)7.如果最常见的操作是获取第i个节点及其前体,请使用___________________。

a.单链表b.双链表c、与单链表相比,双链表的优点之一是。

a.插入和删除操作更简单b.可以进行随机访问c.可以省略表头指针或表尾指针d.访问前后相邻结点更灵活9.带头结点的单链表l为空的判定条件是_________。

a、 l==nullb.l->next==nullc.l->next==ld.l!=无效的10.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是_________。

a、 o(1)b.o(n)c.o(n2)d.o(nlog2n)11.在一个长度为n(n>1)的带头结点的单链表h上,另设有尾指针r(指向尾结点),执行_________操作与链表的长度有关。

数据结构 第二章:线性表

数据结构 第二章:线性表

第二章线性表:习题习题一、选择题1.L是线性表,已知Length(L)的值是5,经运算?Delete(L,2)后,length(L)的值是( c)。

A.5B.0C.4D.62.线性表中,只有一个直接前驱和一个直接后继的是( )。

A.首元素 B.尾元素C.中间的元素 D.所有的元素+3.带头结点的单链表为空的判定条件是( )。

A. head= =NULLB. head->next= =NULLC. head->next=headD. head!=NULL4.不带头结点的单链表head为空的判定条件是( )。

A. head=NULLB. head->next =NULLC.head->next=headD. head!=NULL5.非空的循环单链表head的尾结点P满足()。

A. p->next = =NULLB. p=NULLC. p->next==headD. p= =head6.线性表中各元素之间的关系是( c)关系。

A.层次B.网状C.有序 D.集合7.在循环链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 38.在单链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 39.在双链表的一个结点中有()个指针。

A.1B.2 C. 0 D. 310.在一个单链表中,若删除p所指结点的后继结点,则执行()。

A.p->next= p->next ->next;B. p=p->next; p->next=p->next->next;C. p->next= p->next;D. p=p->next->next;11.指针P指向循环链表L的首元素的条件是()。

A.P= =L B. P->next= =L C. L->next=P D. P-> next= =NU LL12. 在一个单链表中,若在p所指结点之后插入s所指结点,则执行()。

第2章 数据结构与算法

第2章 数据结构与算法

数据结构与算法1.1 基本概念信息--------》数据1.11 数据结构的基本概念数据:数据就是计算机化的信息,数据元素(结点记录表目)是数据的基本单位,一个数据元素由多个数据项组成,数据项是有独立含义的数据的最小单位。

数据结构:数据的逻辑结构线性结构非线性结构数据的储存结构数据的运算包括:检索,插入,删除,更新,排序等。

1.12主要的数据存储方式(1)顺序存储结构结点中只有自身信息字段,没有链接信息字段可以通过计算确定数据结构中第I个结点的位置删除,插入运算会引起大量的结点移动(2)链式存储结构结点中除了自身信息外,还有表示连接信息的指针字段,用指针来体现数据之间逻辑上的联系逻辑上相邻的结点物理上不必相邻插入,删除操作灵活方便,不必移动结点,只要改变结点中指针值即可1.13算法的设计与分析算法采用由粗到细,由抽象到具体的逐步求精的方法算法分析:主要分析算法所占用的计算机资源,即时间代价和空间代价两个方面。

1.2线性表线性表是最简单,最常用的数据结构。

线性表的逻辑结构为n个数据元素的有序序列。

线性表的储存结构多样其中:顺序储存结构的线性表称为顺序表(一维数组)链式储存结构的线性表称为链表散列方法储存的线性表称为散列表线性表根据其上的运算集合不同可以分为:栈和队列1.21 顺序表和一维数组用顺序方式储存的线性表成为一维数组。

用存储单元的邻接性体现线性表元素间的一维顺序关系,对线性表进行插入和删除操作时,可能需要移动大量的结点。

1.22 链表(1)线性链表(单链表)头指针--→头结点--→结点(2)双链表设置两个指针,其中Llink指向前驱结点,Rlink指向后继结点。

(3)可利用空间表作用是管理可用于链表插入的结点,当链表插入需要一个结点时,从可利用空间表删除第一个结点,用这个结点去做链表插入;当从链表中删除一个结点的时候,就把这个结点插入到可利用空间表第一个结点的前面。

1.23 栈栈是限定仅在一端进行插入和删除的线性表。

软件技术基础习题答案

软件技术基础习题答案

软件技术基础习题答案【篇一:软件技术基础试题库】>课程名称:软件技术基础适用专业:软件技术、计算机应用、网络、信息等计算机相关专业第一章概述第二章数据结构一、单项选择题1.若长度为n的线性表采用顺序存储结构,删除它的第i数据元素之前,需要先依次向前移动_______个数据元素。

( )a. n-ib. n+ic. n-i-1d. n-i+1答案:a2.在单链表中,已知q指的结点是p指的结点的直接前驱结点,若在q和p指的结点之间插入一个由s指的结点,则需执行________。

( )a. link(s)←link(p),link(p)←sb. link(q)←s,link(s)←pc. link(p)←link(s),link(s)←pd. link(p)←s,link(s)←q答案:b3.高度为h(h0) 的二叉树最少有________个结点。

()a. hb. h-1c. h+1d. 2h答案:a4.n个顶点的带权无向连通图的最小生成树包含 ________ 个顶点。

()a.n-1b.nc.n/2d.n+1答案:b5.采用拉链法解决冲突的散列表中,查找的平均查找长度( )。

a. 直接与关键字个数有关b. 直接与装填因子 a 有关c. 直接与表的容量有关d. 直接与散列函数有关答案:d6.树型结构最适合用来描述()a.有序的数据元素b.无序的数据元素c.数据元素之间的具有层次关系的数据d.数据元素之间没有关系的数据答案:c7.若二叉树中度为2的结点有15个,度为1的结点有10个_______个叶结点。

()a.25b.10c.16d.41答案:c度0的结点比度2的结点多18.若深度为6的完全二叉树的第6层有3个叶结点,则该二叉树一共有______个结点。

(a.32b.33c.34d.25答案:c9.若某完全二叉树的深度为h,则该完全二叉树中至少有______个结点。

()a.2h )b.2h-1c.2h-2d.2h-1+1答案:c10.在非空二叉树的中序遍历序列中,二叉树的根结点的左边应该( )a.只有左子树上的所有结点b.只有左子树上的部分结点c.只有右子树上的所有结点d.只有右子树上的部分结点答案:a11( )a.对应于一组权值构造出的哈夫曼树一般不是唯一的b.哈夫曼树具有最小带权路径长度c.哈夫曼树中没有度为1的结点d.哈夫曼树中除了度为1的结点外,还有度为2的结点和叶结点答案:d12.数据结构是一门研究计算机中(a. 数值运算b.非数值运算c.集合d.非集合答案:b13.数据结构的定义为(k,r),其中k是的集合。

数据结构 第二章__线性表(本)

数据结构 第二章__线性表(本)

数据结构与算法华东师范大学计算机系杨沛第二章线性表2.1 线性表的基本概念线性表是具有相同数据类型的数据元素的有限序列。

由n(n≥0)个数据元素k0,k1,…,kn-1组成的线性表记为(k0 ,k1 ,…,kn-1),线性表中包含的数据元素的个数n称为线性表的长度(length),称长度为零的线性表为空的线性表(简称为空表)。

相关概念:表头、表尾、前驱、后继有序线性表:数据元素的相对位置与它们的值有联系。

无序线性表:数据元素的相对位置与它们的值没有联系。

第二章线性表例小于20的质数组成的线性表(2,3,5,7,11,13, 17,19);英文字母表也是线性表,表中每个字母是一个数据元素:(A,B,C,……,Z);2.2 顺序表2.2.1 线性表顺序表(sequential list)就是顺序存贮的线性表,即用一组连续的存贮单元依次、连续地存贮线性表中的结点。

如果每个结点占用s个存贮单元,并假设存放结点ki(0≤i≤n-1)的开始地址为loc(k0),则结点ki的地址loc(ki)可表示成Loc(ki) =loc(k0) + i*s。

2.2 顺序表在C 语言中,可用数组表示线性表:#define MAXN 100int list[MAXN];int n;线性表的结点k 0,k 1,…,k n-1依次存放在数组单元list[0],list[1],…,list[n-1]。

2.2.1 线性表最大表长实际表长线性表2.2 顺序表2.2.1 线性表假设s=sizeof(int),则可得到计算ki的地址的公式,因loc(ki)=&list[i],而&list[i]=&list[0]+i·s,故loc(ki)=&list[0]+i·s。

2.2 顺序表2.2.2 顺序表的操作(1)初始化:初始长度置为0即可(n=0;),数组空间在编译时分配。

(2)顺序表的插入:插入算法的C函数SqListInsert():若插入位置i不在可以插入的位置上,即i<0或i>n,则返回0;若n=MAXN,即线性表已满,此时数组list[]没有多余的存贮单元可以存放新结点,则返回-1;若插入成功,则返回12.2 顺序表实际表长(2)顺序表的插入:int SqListInsert(int list[],int*p_n,int i,int x) {int j;if(i<0||i>*p_n)return(0);//i不是合法的插入位置if(*p_len==MAXN)return(-1);//线性表已满2.2 顺序表for(j=*p_n;j>i;j--)list[j]=list[j-1];//结点右移list[i]=x;(*p_n)++;//表长加1return(1);}2.2 顺序表(2)顺序表的插入:对于存放在数组list[]中的、具有n个结点的顺序表,为了把值为x的结点插在表的位置i(0≤i≤n)上,可调用如下的语句:k=SqListInsert(list, &n, i, x);注:结点移动是本算法的关键操作2.2 顺序表(3)顺序表的删除:删除算法的C函数SqListDelete():在具有n个结点的顺序表中,删除第i(0≤i≤n-1)个位置上的结点,使线性表长度减1,若删除位置不合法,即i<0或i≥n,则返回0;若删除位置合法,即0≤i≤n-1,则删除成功,返回1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

之间所有的拓扑关系表达出来, 可以组成四个关系表
表1 结点与弧段的拓扑关系 结 点 弧 段
N1
N2 N3 …
C1,C3,C4
C1,C2,C5 C2,C3,C10 …
§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构
如果要将结点、弧段、面相互
之间所有的拓扑关系表达出来, 可以组成四个关系表
1. GIS空间数据的来源 影像数据:卫星遥感和航空遥感影像数据
§2.2 地理空间数据及其特征
1. GIS空间数据的来源 地形数据:来源于地形等高线图的数字化,已建立的数 字高程模型等
§2.2 地理空间数据及其特征
1. GIS空间数据的来源 属性数据:来源于各类调查报告、实测数据、文献资料、 解译信息。
§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构 定位信息 属性信息 拓扑关系
P3
C5 C1
N2
N1
C2
C6
P2
N5
N3
P4 C4 C3 N4 C7 P1
地理实体:交通线
§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构 拓扑结构是定义空间结构关系的一种数学方法,在地理 信息系统中被用来空间数据的编辑合组织。 空间数据的拓扑关系包括拓扑邻接、拓扑关联和拓扑包 含,它们在GIS的数据处理、空间分析以及数据库的查 询与检索中,具有重要的意义。
GIS中的空间概念常用“地理空间”(geo-spatial)来表
述,一般包括地理空间定位框架及其所连接的空间对象 (地理空间特征实体);
§2.1 地理空间及其表达
2. 地理空间坐标系
地理空间定位框架即大地测量控制,由平面控制网和高
程控制网组成; GIS的任何空间数据都必须纳入一个统一的空间参照系 中,以实现不同来源数据的融合、连接与统一。
要点回顾
地理信息系统的定义 地理信息系统的构成 地理信息系统的功能
本章的主要内容
§2.1 地理空间及其表达
§2.2 地理空间数据及其特征 §2.3 空间数据结构的类型 §2.4 空间数据结构的建立
§2.1 地理空间及其表达
1. 地理空间的概念
地理空间的范围:上至大气电离层,下至地壳莫霍面
208区 209区
区 域中 心
境 界线
行 政单 元
道 路交 点 89 405 73 气 象站
205 206 206 207 206 207
20 5
街道 60
街区
59
61
航线
20 6
样 方分 布区 . . ... . .. . .. .. . .. . 205 . .. .. .. .
.
.
.
.
7 20

4. GIS空间数据的拓扑结构

点、线、面基本数据之间的关系,代表了空间实体 之间的位置关系。分析点、线、面三种类型的数据, 得出其可能存在的空间关系有以下几种: (1) 点—点关系 点和点之间的关系主要有两点(通过某条线)是否 相连,两点之间的距离是多少?如城市中某两个点 之间可否有通路,距离是多少?这是在实际生活中 常见的点和点之间的空间关系问题。
§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构 拓扑结构的优点: (2)利用拓扑关系有利于空间要素的查询,例如某条铁路 通过哪些地区,某县与哪些县邻接。又如分析某河流能 为哪些地区的居民提供水源,某湖泊周围的土地类型及 对生物栖息环境作出评价等。
§2.2 地理空间数据及其特征
表示现象的空间位 置或现在所处的地 理位置。空间特征 又称为几何特征或 定位特征,一般以 坐标数据表示。
3. GIS空间数据的基本特征
属性特征
表示现象的特征, 例如变量、分类、 数量特征和名称等 等。
3. GIS空间数据的基本特征
时间特征

时间特征是指空间 对象随着时间演变 而引起的空间和属 性特征的变化。
大地坐标原点:陕西省泾阳县永乐镇,简称“西安原点”
§2.1 地理空间及其表达
2. 地理空间坐标系
2. 地理空间坐标系 地图投影 --将地理坐标(经纬度)从球面空间转换成平面空间 的直角坐标的数学方法 我国常用投影: --高斯—克吕格投影 (通用横轴墨卡托投影UTM )
§2.1 地理空间及其表达
如:N1/C1、C3、C4, N6/ C7、C8、C10, P1/C1、C2、C3
§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构 拓扑包含
——指存在于空间图形 的同类,但不同级的元 素之间的拓扑关系。
§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构
如果要将结点、弧段、面相互
§2.2 地理空间数据及其特征

4. GIS空间数据的拓扑结构

点、线、面基本数据之间的关系,代表了空间实体 之间的位置关系。分析点、线、面三种类型的数据, 得出其可能存在的空间关系有以下几种: (4)线—线关系 线和线是否邻接、相交是线和线关系的主要表现形 式。如河流和铁路的相交,两条公路是否通过某个 点邻接? (5)线—面关系 线和面的关系表现为线是否通过面或和面关联或包 含在面之内?
4. GIS空间数据的拓扑结构 拓扑结构的优点: (3)可以根据拓扑关系重建地理实体。例如根据弧段构建 多边形,实现道路的选取,进行最佳路径的选择等。
§2.2 地理空间数据及其特征
5. GIS空间数据的计算机表示 数据结构 空间数据有哪些特征? 这些特征数据如何关联?
表示地理实体的空间数据包含着空间特征和属性特征, 如何组织和建立它们之间的联系,以便计算机存储和操 作,这称为数据结构。
§2.2 地理空间数据及其特征

4. GIS空间数据的拓扑结构

点、线、面基本数据之间的关系,代表了空间实体 之间的位置关系。分析点、线、面三种类型的数据, 得出其可能存在的空间关系有以下几种: (2)点—线关系 点和线的关系主要表现在点和线的关联关系上。如 点是否位于线上,点和线之间的距离等等。 (3)点—面关系 点和面的关系主要表现在空间包含关系上。如某个 村子是否位于某个县内?或某个县共有多少个村子?
线(Line, Arc, Curve) 面(Polygon) 曲面(Surface) 体(Volume)
§2.1 地理空间及其表达

§2.1 地理空间及其表达
线
§2.1 地理空间及其表达

§2.1 地理空间及其表达
3. 空间实体的表达
在计算机中,现实世界是以各种数字和字符形式来表达
和记录的;



§2.2 地理空间数据及其特征
4. GIS空间数据的拓扑结构
如果要将结点、弧段、面相互
之间所有的拓扑关系表达出来, 可以组成四个关系表
表4 多边形与弧段的拓扑关系 多边形 弧 段
P1
P2 P3 …
C1,C2,C3
C1,C4,C5,C6 C6,C7,C8 …
§2.2 地理空间数据及其特征
对现实世界的各类空间对象的表达有两种方法,分别称
为矢量表示法(矢量数据模型)和栅格表示法(栅格数 据模型)。
§2.1 地理空间及其表达
矢量数据模型
栅格数据模型
§2.2 地理空间数据及其特征
1. GIS空间数据的来源 地图数据:各种类型的普通地图和专题地图
§2.2 地理空间数据及其特征


行政单元等; 网络数量 例如道路交点、街道和街区等; 样本数量 例如气象站、航线和野外样方的分布区等; 曲面数据 例如高程点、等高线和等值区域; 文本数据 例如地名、河流名称和区域名称; 符号数据 例如点状符号、线状符号和面状符号等。
A C 点 状要 素 线 状要 素
208 209
B D
面 状要 素
§2.2 地理空间数据及其特征
5. GIS空间数据的计算机表示 由目标构建数据库的逻辑过程
图幅1 图层1 图层2 DB 图幅2 …… …… 类型K | …… 目标N 类型1 类型2 目标1 目标2
…… | 点( x,y)
图层L
目标=| 线 (x1,y1), (x2,y2),……(xn,yn) (坐标串)|+属性+关系
206 207
高 程点 雷 德兰 方 塔内 地 点名 称 科顿
等 值线
概 略等 值区 商 业区
线 状要 素名 称
237 点 状符 号 线 状符 号
区 域名 称 .. . .. . . . . . . . . .. . .. . . . .. . 面 状符 号
3. GIS空间数据的基本特征
空间特征
§2.1 地理空间及其表达
2. 地理空间坐标系
平面控制网
根据不同需求,我国现有三种大地坐标系并存:

1954年北京坐标系(局部平差) 1980年国家大地坐标系(整体平差) 地心坐标系
§2.1 地理空间及其表达
2. 地理空间坐标系
平面控制网
目前,我国采用的大地坐标系为1980年中国国家大地 坐标系,该坐标系选用1975年国家测量协会推荐的国际 椭球,旋转椭球体参数: 赤道半径 a = 6,378.140 km 极半径 扁率 b = 6,356.755 km a b 1 f a 298 .257
| 面 坐标串1, 坐标串2,……….., 坐标串N |
§2.2 地理空间数据及其特征
5. GIS空间数据的计算机表示
图 一个空间目标的空间特征与属性特征之间的关系
§2.3 空间数据结构的类型
矢量数据结构 基于矢量模型的数据结构 是面向地物的结构,即对每一个具体的目标都直接赋有 位置和属性信息以及目标之间的拓扑关系的说明。 矢量数据仅有一些离散点的坐标,在空间表达方面没有 直接建立位置与地物的关系。
相关文档
最新文档