选择题:
1.1数据结构在计算机内存中的表示是指:
A.数据的存储结构 B.数据结构
C.数据的逻辑结构 D.数据元素之间的关系
1.2数据的逻辑结构是指:
A.数据所占的存储空间量
B.各数据元素之间的逻辑关系
C.数据在计算机中顺序或链接的存储方式
D.存储在内存或外存中的数据
1.3在下列的叙述中,正确的是:
A •数据的逻辑结构是指数据的各数据项之间的逻辑关系。
B.数据的物理结构是指数据在计算机内的实际存储形式。
C.在顺序存储结构中,数据元素之间的关系是显示体现的。
D •链接存储结构是通过结点的存储位置相邻来体现数据元素之间的关系。
填空题:
1.4 数据结构主要研究数据的逻辑结构 | ,数据的存储结构 ,数据的运算三个方面的 | |
内容。 | ||
1.5 链接存储的特点是通过附加 扌旨针域 | 来表示数据元素之间的逻辑关系。 | |
1.6 数据结构中讨论的三种经典结构包括: | 线性表L,」树,图。 | |
1.7 数据结构中常用的存储方法有: 顺序 | ,链接, | 索引1 ,散列]。 |
1.8 顺序存储结构可以通过位置一隐含表示关系,链接存储结构通过附加指针来 显示表示关系。 | ||
1.9 算法的特性包括 有穷性,确定性 | ],可行性 | ,输入和输岀。 |
1.10算法性能分析的两个主要定量评价指标是 | 时间复杂度 | 和空间复杂度。 |
简答题:
1.11数据结构研究的三方面内容之间有什么联系和区别?
数据结构研究的三方面内容包括 :数据的逻辑结构、 存储结构和运算。数据的逻辑结构 是数学模型,存储结构是指逻辑结构到存储区域的映射,运算是定义在逻辑结构上, 实现在存储结构上。
1.12简述数据结构中讨论的三种经典结构的逻辑特征是什么?
三种经典结构:线性表、树和图。逻辑特征分别为:
(1)线性表:一对一。有且仅有一个开始结点和一个终端结点,其余的内部结点都有 且仅有一个前趋结点和一个后继结点。
(2)树:一对多。有且仅有一个开始结点,可有若干个终端结点,其余的内部结点都 有且仅有一个前趋结点,可以有若干个后继结点。
(3)图:多对多。可有若干个开始结点和终端结点,其余的内部结点可以有若干个前 趋结点
和若干个后继结点。
1.13简述各种常用存储方法的基本思想。
各种方法的基本思想:
顺序存储:逻辑上相邻的数据元素存储在物理位置上相邻的存储单元里。 链接存储:通过附加指针域表示数据元素之间的关系。
索引存储:除了存储数据元素,还要建立附加的索引表来标识数据元素的地址。 散列存储:根据关键字直接计算出该结点的存储地址,通常称为关键字-地址转换法。
选择题:
2.1 线性表L= (ai, aa,…,an),下列说法正确的是:
A.每个元素都有一个直接前驱和一个直接后继。
B.线性表中至少有一个元素。
C.表中元素的排列顺序必须是由小到大或由大到小。
D.除第一个和最后一个元素外,其余每个元素都有且仅有一个直接前驱和一个直接后继。
2.2 下面关于线性表的叙述中,错误的是:
C.s=L; s->next=L; D. s->next=L; s=L;
2.7已知单链表上一结点的指针为 p,则在该结点之后插入新结点 *s的正确操作语句为:
A. p->next=s; s->next=p->next; B. s->next=p->next; p->next=s;
C. p->next=s; p->next=s->next; D. p->next=s->next; p->next=s;
2.8已知单链表上一结点的指针为 p,则删除该结点后继的正确操作语句是:
A. s= p->next; p=p->next; free(s); B. p=p->next; free(p);
C. s= p->next; p->next=s->next; free(s); D. p=p->next; free(p->next);
2.9设一个链表最常用的操作是在表尾插入结点和在表头删除结点, 则选用下列哪种存储结构效率最高?
A.单链表 B.双链表 C.单循环链表 D.带尾指针的单循环链表
2.10线性表的链接存储结构是一种( )存储结构。
D.散列存取
A.随机存取 B.顺序存取 C.索引存取2.11链表不具备的特点是:
填空题:
2.1在单链表L中,指针p所指结点有后继结点的条件是 p->next!=NULL 。
2.2判断带头结点的单链表 L为空的条件L->next==NULL 。
— '
2.12顺序表和链表中能实现随机存取的是 顺序表 ,插入、删除操作效率高的是 链表—。
2.13对于一个具有n个结点的单链表,已知一个结点的指针 p,在其后插入一个新结点的时间复杂度为
O (1);若已知一个结点的值为 x,在其后插入一个新结点的时间复杂度为 _0 (n)。
2.14顺序表的存储密度 大_,链表的存储密度小一。
简答题:
2.15比较顺序表和链表这两种线性表不同存储结构的特点
顺序表 | 存储密度大 | 存储空间连续 | 静态分配 | 随机存取 | 插、删效率低 |
链表 | 存储密度大 | 存储空间可不连续 | 动态分配 | 顺序存取 | 插、删效率高 |
2.16简述头结点的作用。
头结点的作用是使得单链表在表头位置的插、删操作同中间位置的插、删操作完全相 同。即使“空表”与“非空表”的操作统一,也使“表头结点”与其他位置结点的操 作完全一致,无须特殊处理。
2.17写岀单链表存储结构的 C语言描述。
typedef int DataType;
typedef struct Node
{ DataType data; struct Node *n ext;
}Lin kList;
完善程序题:
2.18设计一个算法,其功能为:向一个带头结点的有序单链表(从小到大有序)中插入一个元素 X,使插
入后链表仍然有序。请将代码补充完整。
typedef int DataType;
typedef struct Node
{ DataType data;
; /*定义指向该结构类型的指针变量 next*/
}Linklist;
void insert(Linklist *L,DataType x)
{ Linklist *s,*p=L;
while(p->next && p->next->data<x)
; /*p 指针后移一步 二叉树定义*/
; /*申请一个新结点空间,将其地址赋给变量 s*/ s->data=x;
; ; /*将*s结点插入到*p结点的后面*/
}
struct Node | I * next; | |
p=p->n ext; | ||
s=(L in kList *)malloc(sizeof(L in kList)); | ||
s->n ext=p->n ext; p->n ext=s; | ||
2.19设计一个函数功能为:在带头结点的单链表中删除值最小的元素。请将代码补充完整。
typedef int DataType;
typedef Node /*定义结构体类型*/
{ DataType data; struct Node * next;
}LinkList;
void deleteMin(LinkList *L)
{ LinkList *p=L->next,*q; /*首先查值最小的元素,指针 q指向最小元素结点*/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论