数据结构c语言版复习提纲及重点

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

数据结构 – Data Structures
第三章 栈和队列
本章内容:
3.1 栈 3.1.1 栈的定义 3.1.2 栈的表示和实现
3.2 栈的应用举例 3.3 栈与递归 3.4 队列
3.4.1 队列的定义 3.4.2 链队列 3.4.3 循环队列
西安电子科技大学 - Xidian University, China 18
}SLink,*LinkList;
LinkList head,tail;
西安电子科技大学软件学院 - School of Software, Xidian University, China
例题
数据结构 – Data Structures
1. 顺序表中,逻辑上相邻的数据元素在物理位置上( 也相邻 ) 。 线性表L=(a1,a2,...,an)采用顺序存储,假定在不同的n+1个位置 上的插入概率相同,则插入一个新元素平均需要移动的元素个
例题
数据结构 – Data Structures
6. 编写算法,将一个带头结点的单链表就地逆置。(请先说明算法思路,再用类高级 语言编写算法。 )
head



a1
a2
ai-1
ai
ai+1
an-1
an
单链表逆置
head



a1
a2
ai-1
ai
ai+1
an-1
an
西安电子科技大学 - Xidian University, China
if (s%2)
② n2 ③n
print(s);
}
西安电子科技大学 - Xidian University, China
7
第二章 线性表
本章内容:
2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示与实现
2.3.1 线性链表 2.3.2 循环链表 2.3.3 双向链表 2.4 一元多项式的表示及相加
例题
数据结构 – Data Structures
1. 在循环队列结构中(队列空间容量为M),Q.rear指向队尾元 素所在位置,Q.front指向队头元素所在位置,则队列的长度为 ( (Q.rear - Q.front + 1 + M) % M )。
Q.front
... ...
西安电子科技大学 - Xidian University, China
5
例题
数据结构 – Data Structures
1. 数据结构中的逻辑结构是指( ),物理结构是指( )。 2. 算法的基本特征包括有穷性、( )、( )、有输入和输出 。 3. 算法的有穷性是指( )。 4. 算法的确定性是指( )。 5. 算法的可行性是指( )。 6. 算法分析的两个主要内容是分析算法的( )和空间复杂度。
链表有序的算法时间复杂度为( O(n) ) 。
5. 若线性表中最常用的操作是删除第一个结点或在最后一个结点 后插入一个结点,则( C ) 存储方式最节省运行时间及空间。
A. 单向链表
B. 仅含头指针的单向循环链表
C. 仅含尾指针的单向循环链表 D. 双向链表
西安电子科技大学 - Xidian University, China 16
head
头指针
头结点
a1
a2
首元结点
… ai-1
ai+1
单链表示意图
ai … an ^
F 头指针是指向链表第一个结点的指针。 F 头结点是链表中的第一个结点但是头结点中不存
放数据元素。
西安电子科技大学软件学院 - School of Software, Xidian University, China
2.2 线性表的顺序存储结构
F 一2个.3线线性性表表是的有链n式个存数储据结元构素的有限序列:
2.4 双向链表(a1,a2,…,ai,…,an) F 线2性.5表链的表顺的序应存用储指用一组地址连续的存储单元依次存储线
性表的数据元素。这称为顺序表。
特点: Ø存储单元地址连续(需要一段连续空间)
d
a1
数据结构 – Data Structures
西安电子科技大学 - Xidian University, China
8
第二章 线性表
数据结构 – Data Structures
本章学习要点:
1. 线性表的逻辑结构特性是数据元素之间存在着线性关系, 在计算机中表示这种关系的两类不同的存储结构是顺序 存储和链式存储,分别称为顺序表和链表(单向链表、 双向链表和循环链表)。
西安电子科技大学 - Xidian University, China 19
例题
数据结构 – Data Structures
1. 用S、X分别表示入栈、出栈操作,若元素入栈顺序为1、2、3、 4,为得到出栈序列1、3、4、2,则相应的S和X操作串是 ( SXSSXSXX )。
2. 若push、pop分别表示入栈、出栈操作,初始栈为空且元素a、b、 c依次进栈,则经过操作序列push、push、pop、pop、push、 pop之后,得到的出栈序列为( b a c )。
数是( n/2 ) 。
2. 在一个长度为n的顺序表中, 在第i个元素(1 i n)之前插入一 个新元素时, 需向后移动( n-i+1 )个元素。
3. 在表长为n的单链表中, 取得第i (1 i n)个数据元素必须从 ( 头指针 )出发开始寻找。
4. 在一个具有n个结点的有序单链表中,插入一个新结点并保持
数据结构 – Data Structures
单链表、循环链表和双向链表
head
头指针
a1
a2
头结点 首元结点
(a)单链表示意图
… ai-1 ai+1
ai … an ^
a1
a2

an-1
an
head
(b) 循环单链表
tail

a1
… … a2
ai
an-1
an

(c)双向链表示意图
西安电子科技大学软件学院 - School of Software, Xidian University, China
数据结构 – Data Structures
单链表、循环链表的类型定义
head
头指针
a1
a2
… ai-1
头结点 首元结点
(a)单链表示意图
ai+1
ai … an ^
a1
a2

an-1
an
(b) 循环单链表
tail
typedef struct LNode { ElemType data; /*存储数据元素*/ struct LNode *next; /*指向后继结点*/
2. 掌握线性表的基本操作(查找、插入、删除)在顺序表 和链表上的具体实现方法。
3. 能够从时间和空间复杂度综合比较顺序表和链表的不同 特点及其适用场合。
西安电子科技大学 - Xidian University, China
9
第二章 线性表
数据结构 – Data Structures
本章内容:
2.1 线性表的基本概念
front
a1
a2

an-1
an
front
a1
a2

an-1
an
西安电子科技大学 - Xidian University, China 21
例题
数据结构 – Data Structures
1. 用循环单链表表示的队列长度为n,若只设头指针,则出队和 入队的时间复杂度分别是( )和( );若只设尾指针,则 出队和入队的时间复杂度分别是(O(1))和(O(1))。
head
头指针
a1
a2
… ai-1
ai
头结点 首元结点
ai+1

单链表示意图
西安电子科技大学软件学院 - School of Software, Xidian University, China
an ^
第二章 线性表
数据结构 – Data Structures
F 线性表L:(a1, a2, …, ai-1, ai, ai+1,…, an)
3. 如果进栈的序列为1、2、3, 则不能得到的出栈序列为( 3 1 2 )
西安电子科技大学 - Xidian University, China 20
例题
数据结构 – Data Structures
1. 用循环单链表表示的队列长度为n,若只设头指针,则出队和 入队的时间复杂度分别是( 含头结点时为O(1)、不含头结点 时为 O(n) )和(O(n));若只设尾指针,则出队和入队的时 间复杂度分别是( )和( )。
int listsize; //存储容量
}SqList;
//顺序表类型
p p+1
a1
L.elem[0]
a2
L.lem[i-1] ai+1 L.elem[i]

an
L.elem[L.length-1]
西安电子科技大学软件学院 - School of Software, Xidian University, China
数据结构 – Data Structures
第三章 栈和队列
本章学习要点:
1. 掌握栈和队列类型的特点,并能在相应的应用问题中正 确选用这两种数据结构。
2. 掌握栈类型的两种实现方法(顺序栈和链栈),应注意 栈满和栈空的条件及其表示方法。
3. 掌握循环队列和链队列的基本操作实现算法(入队列、 出队列),注意队满和队空的条件及表示方法。
大家好
数据结构 Data Structures
考题形式:
选择题(20%) 简答题(60%) 算法题(20%)
关于考试
数据结构 – Data Structures
课程成绩:
期末考试成绩占70%,平时成绩占30% 平时成绩由作业、考勤、程序验收和实验报告组成。
西安电子科技大学 - Xidian University, China
西安电子科技大学 - Xidian University, China
6
例题
数据结构 – Data Structures
1. 语句频度是指( )。
2. 设n为正整数,对下面的程序段,写出语句①、②、③的频度及 该程序段的时间复杂度。
for (i=1; i <=n; i++)
{ s=0;
①n
for (j=1; j <=n; j++) s=s+i×j;
3
第一章 绪论
本章内容:
1.1 什么是数据结构 1.2 基本概念和术语 1.3 抽象数据类型的表示与实现 1.4 算法和算法分析
1.4.1 算法的概念及5个重要特性 1.4.2 算法设计的要求 1.4.3 算法效率的度量 1.4.4 算法的存储空间的需求
数据结构 – Data Structures
a1
a2

an-1
an
tail
a1
a2

an-1
an
tail
西安电子科技大学 - Xidian University, China 22
循环队列
数据结构 – Data Structures
¯ 令队列空间中的一个单元闲置,使得在任何时刻, 保持Q.rear和Q.front之间至少间隔一个空闲单元
e8 e9
西安电子科技大学 - Xidian University, China
4
第一章 绪论
数据结构 – Data Structures
本章学习要点:
1. 熟悉各名词、术语的含义,理解逻辑结构和存储结构 (物理结构)概念。
2. 理解算法五个重要特性的确切含义。 3. 掌握计算语句频度和估算算法时间复杂度的基本方法。
a2
... ...
Ø逻辑上相邻的数据元素其物理位置也相邻
Ø存储密度大(100%)
ai
Ø随机存取,元素的存储位置存在如下关系:
Loc(ai) 西=安L电o子c科(技a大1)学+软件(i学院- 1) * d - School of (1≤i≤n) Software, Xidian University, China
11
第二章 线性表
数据结构 – Data Structures
本章内容:
2.1 线性表的基本概念 2.2 线性表的顺序存储结构 2.3 线性表的链式存储结构 F 2线.4性双表向的链链表式存储指用任意的存储单元存放线性表中的元 2素.5,链每表个的元应素用与其直接前驱和(或)直接后继之间的关系
用指针来表示。这称为链表。
e7 6 7
0 1
e10
e6
52 43
e5 e4
F 队列满:
(Q.rear+1)%MAXSIZE == Q.front
F 队列空:
Q.rear==Q.front
F 队列长度:
(Q.rear - Q.front+ MAXSIZE)% MAXSIZE
Q.rear
MAXSIZE=8 Q.front
西安电子科技大学 - Xidian University, China 23
an
数据结构 – Data Structures
线性表的顺序表示----顺序表
F 线性表L:(a1, a2, …, ai-1, ai, ai+1,…, an)
L.elem
typedef struct {
ElemType *elem; //存储空间首地址
int length; //表长(元素个数) q
相关文档
最新文档