1-数据结构的基本概念和术语
- 格式:ppt
- 大小:1.54 MB
- 文档页数:30
数据结构基本概念和术语1. 嘿,你知道数据结构不?这可是个超酷的东西呢!就像盖房子得有个好的框架一样,数据结构就是数据在计算机里存放和组织的框架。
比如说,你有一堆玩具,你可以把它们随便扔在盒子里,这就好比是没有规划的数据存放,找起来可费劲了。
可要是你按照大小或者类型把玩具分类放在不同的小格子里,这就像是一种简单的数据结构,找起来就容易多了。
2. 数据结构里有个概念叫数组,这就像是一列小火车,每个车厢都能装东西,而且车厢是按顺序编号的。
我跟我朋友讲这个的时候,他还不信呢。
我就说,你看,假如你要存你们班同学的成绩,用数组就很方便,第1个车厢放第1个同学的成绩,第2个车厢放第2个同学的成绩,以此类推。
这多整齐啊,就像士兵排着队一样。
3. 链表这个数据结构可有点意思了。
想象一下,你和你的小伙伴们手拉手连成一串,这就是链表啦。
每个小伙伴就像链表中的一个节点。
我之前给我弟弟解释这个,他一脸懵。
我就说,你看你那些小卡片,如果在每张卡片上写个数字,然后把卡片按顺序用绳子串起来,这就类似链表了。
想要找其中一张卡片,就得顺着绳子一个一个找过去。
4. 栈这个概念,你可以把它想象成一个弹夹。
先进去的子弹最后才能打出来,这就是栈的特性,后进先出。
我在和同学讨论这个的时候,他说这很奇怪啊。
我就跟他说,你看食堂里叠放的餐盘,最后放上去的餐盘是不是最先被拿走啊,这就和栈是一个道理,是不是很神奇呢?5. 队列又不一样喽。
它就像排队买冰淇淋的队伍,先来的人先买到,先入先出。
我跟我表弟说这个的时候,他说这很简单嘛。
我就说,对啊,就像你们学校排队做早操,第一个站好的同学第一个出去,这就是队列在生活中的体现呀。
6. 树这个数据结构可复杂又有趣啦。
它就像一棵大树,有树干,有树枝,还有树叶。
根节点就是树干,树枝就是子节点。
我和我同事解释的时候,他觉得很难理解。
我就说,你看你们家的族谱,最上面的老祖宗就是根节点,下面的子孙后代就是各个子节点,一层一层的,这就是树结构呀。
复习提纲第一章数据构造概述根本概念与术语〔P3〕1.数据构造是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科.2.数据是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合2.数据元素是数据的根本单位3.数据对象一样性质的数据元素的集合4.数据构造三方面容:数据的逻辑构造.数据的存储构造.数据的操作.〔1〕数据的逻辑构造指数据元素之间固有的逻辑关系.〔2〕数据的存储构造指数据元素及其关系在计算机的表示( 3 ) 数据的操作指在数据逻辑构造上定义的操作算法,如插入,删除等.5.时间复杂度分析--------------------------------------------------------------------------------------------------------------------1、名词解释:数据构造、二元组2、根据数据元素之间关系的不同,数据的逻辑构造可以分为集合、线性构造、树形构造和图状构造四种类型。
3、常见的数据存储构造一般有四种类型,它们分别是___顺序存储构造_____、___链式存储构造_____、___索引存储构造_____和___散列存储构造_____。
4、以下程序段的时间复杂度为___O(N2)_____。
int i,j,*;for(i=0;i<n:i++) n+1for(j=0;j<n;j++) n+1*+=i;------------------------------------------------------------------------------------------------------------------第二章线性表1.顺序表构造由n(n>=0)个具有一样性质的数据元素a1,a2,a3……,an组成的有穷序列//顺序表构造#define MA*SIZE 100typedef int DataType;Typedef struct{DataType items[MA*SIZE];Int length;}Sqlist,*LinkList;2.单链表(1)链表结点构造//链表的节点构造Typedef struct Node{int data;struct Node *ne*t;} Lnode,*Pnode,*LinkList;(2)结点遍历void TraverseList(LinkList t){LinkList p;while(t){p=t;t=t->ne*tfree(p);}}(3)链表操作算法:初始化、插入、输出、删除void InitList(LinkList *h){*h=(LinkList)malloc(sizeof(LNode));if(!h){print("初始化错误〞);return;}(*h)->ne*t=NULL;}void InsertList(LinkList h,int pos,datatype *){ LinkList p=h,q;int i=0;while(p&&i<pos-1){p=p->ne*t;i++;}if(!p||i>pos-1)print("插入位置出错!!〞);InitList(&q);q->ne*t=NULL;q->data=*;}void DeleteList(LinkList h,int pos){LinkList p=h,q;int i=0;while(p&&i<pos-1){p=p->ne*t;i++;}if(!p||i>pos-1){cout<<〞删除位置错误〞;return;}q=p->ne*t;p->ne*t=q->ne*t;free(q);}-----------------------------------------------------------------------------------------------------------------1、线性表中,第一个元素没有直接前驱,最后一个元素没有直接后驱。
第1章绪论1.1 什么是数据结构数据与数据之间的关系1.2 基本概念和术语1.基本定义(1).数据(Data) :是客观事物的符号表示。
在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素(Data Element) :是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。
(2)数据项(Data Item):一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
数据项是对客观事物某一方面特性的数据描述。
数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。
2.举例如字符集合C={‘A’,‘B’,‘C’,…}--C表示字符对象;A ,B等表示数据元素;再如学生集合Students={“Zhangsan”, “Lisi”,…}Zhangsan(ID,name,age,grade,…)……--Students表示学生对象;“Zhangsan”、“Lisi”表示数据元素;Zhangsan的ID、name、age等表示数据项。
3.数据结构的形式定义数据结构的形式定义是一个二元组:Data-Structure=(D,S)其中:D是数据元素的有限集,S是D上关系的有限集4.逻辑结构与物理结构(1)数据元素之间的关系可以是元素之间代表某种含义的自然关系,也可以是为处理问题方便而人为定义的关系,这种自然或人为定义的“关系”称为数据元素之间的逻辑关系,相应的结构称为逻辑结构。
(2)数据结构在计算机中的表示(映像)称为数据的物理结构。
数据结构的存储方式1)顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。
2)链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer ),用该指针来表示数据元素之间的逻辑结构(关系)。
3)例:设有数据集合A={3.0,2.3,5.0,-8.5,11.0} ,两种不同的存储结构。
数据结构复习大纲第一章绪论1. 数据结构的基本概念和术语1.1 数据、数据元素、数据项、数据结构等基本概念1.2 数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系1.3 数据结构的两大逻辑结构和四种常用的存储表示方法2. 算法的描述和分析2.1 算法、算法的时间复杂度和空间复杂度、最坏的和平均的时间复杂度等概念2.2 算法描述和算法分析的方法,对于一般算法能分析出时间复杂度第二章线性表1. 线性表的逻辑结构1.1 线性表的逻辑结构特征2. 线性表的顺序存储结构2.1 顺序表的含义及特点,即顺序表如何反映线性表中元素之间的逻辑关系2.2 顺序表上的插入、删除操作及其平均时间性能分析3. 线性表的链式存储结构3.1 链表如何表示线性表中元素之间的逻辑关系3.2 链表中头指针和头结点的使用3.3 单链表、双(向)链表、循环链表链接方式上的区别3.4 单链表上实现的建表、查找、插入和删除4. 顺序表和链表的比较4.1 顺序表和链表的主要优缺点4.2 针对线性表上所需要执行的主要操作,知道选择顺序表还是链表作为其存储结构才能取得较优的时空性能第三章栈和队列1.栈的逻辑结构、存储结构及其相关算法1.1 栈的逻辑结构特点,栈与线性表的异同1.2 顺序栈和链栈上实现的进栈、退栈等基本算法1.3 栈的“上溢”和“下溢”的概念及其判别条件2. 队列的逻辑结构、存储结构及其相关算法2.1 队列的逻辑结构特点,队列与线性表的异同2.2 顺序队列(主要是循环队列)和链队列上实现的入队、出队等基本算法2.3 队列的“上溢”和“下溢”的概念及其判别条件2.4 使用数组实现的循环队列取代普通的顺序队列的原因2.5 循环队列中对边界条件的处理方法3. 栈和队列的应用3.1 栈和队列的特点,什么样的情况下能够使用栈或队列3.2 表达式求值的算法思想,及栈变化情况。
第四章串、数组和广义表1.串1.1 串的有关概念及基本运算1.2 串与线性表的关系2.多维数组2.1 多维数组的逻辑结构特征2.2 多维数组的顺序存储结构及地址计算方式2.3 数组是一种随机存取结构的原因2.4 矩阵的压缩存储(对称矩阵、三角矩阵、稀疏矩阵)的表示方式和对应的地址计算方式。
第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。
2。
数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。
(补充:一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
(有时候也叫做属性。
)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。
数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。
依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系.2.线性结构:结构中的数据元素之间存在“一对一“的关系。
若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。
3。
树形结构:结构中的数据元素之间存在“一对多“的关系.若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。
4.图状结构:结构中的数据元素存在“多对多"的关系.若结构为非空集,折每个数据可有多个(或零个)直接后继.(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。
想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。
逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系.2.链式存储结构:借助指针表达数据元素之间的逻辑关系。
不要求逻辑上相邻的数据元素物理位置上也相邻。
数据结构笔记基础:数据结构与算法(一)数据结构基本概念数据(data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号总称数据元素(data element):是数据的基本单位,在计算机中通常被当做一个整体进行考虑和处理数据对象(data object):性质相同的数据元素的集合,是数据的一个子集数据结构(data structure):相互之间存在一种或多种特定关系的数据元素的集合4类基本结构:集合、线性结构、树形结构、图形(网状)结构数据结构的形式定义为数据结构是一个二元组Data Structure = (D,S),其中D是数据元素的有限集,S是D上关系的有限集数据结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构数据结构在计算机中的表示(映像)称为物理结构(存储结构)计算机中表示信息的最小单位是二进制中的一位,叫做位(bit),一到若干位组成一个位串表示一个数据元素,这个位串称为元素或结点数据结构之间关系在计算机中的表示有两种:顺序映像、非顺序映像,并由此得到两种存储结构:顺序存储、链式存储,前者运用相对位置表示数据元素间的逻辑结构,后者借助指针任何一个算法的设计取决于数据(逻辑)结构,而实现依赖于存储结构数据类型是一个值的集合和定义在这个值集上的一组操作的总称数据类型分两种:原子类型、结构类型,前者不可分解(例如int、char、float、void ),后者结构类型由若干成分按某种结构组成,可分解,成分既可以是非结构的也可以是结构的(例:数组)抽象数据类型(Abstract Data Type ):是指一个数学模型及定义在该模型上的一组操作(P8)抽象数据类型格式如下:ADT抽象数据类型名{数据对象:<数据对象的定义>数据关系:<数据关系的定义>数据操作:<数据操作的定义>}ADT抽象数据类型名基本操作格式如下:基本操作名(参数表)初始条件:<初始条件描述>操作结果:<操作结果描述>多形数据类型(polymorphic data type):是指其值得成分不确定的数据类型(P9)抽象数据类型可由固有数据类型来表示和实现(二)算法(概念)和算法分析(时、空性能)算法(algorithm):对特定问题求解步骤的一种描述算法5特性:有穷、确定、可行、输入、输出1、有穷性:算法必须在可接受的时间内执行有穷步后结束2、确定性:每条指令必须要有确切含义,无二义性,并且只有唯一执行路径,即对相同的输入只能得相同输出3、可行性:算法中的操作都可通过已实现的基本运算执行有限次来完成4、输入:一个算法有一到多个输入,并取自某个特定对象合集5、输出:一个算法有一到多个输出,这些输出与输入有着某些特定关系的量算法设计要求(好算法):正确性、可读性、健壮性、效率与低存储需求健壮性是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。
第1章绪论1.1复习笔记一、数据结构的定义数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
二、基本概念和术语数据数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称,它是计算机程序加工的“原料”。
2.数据元素数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
3.数据对象数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。
4.数据结构数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。
(1)数据结构的基本结构根据数据元素之间关系的不同特性,通常有下列四类基本结构:① 集合。
数据元素之间除了“同属于一个集合”的关系外,别无其它关系。
② 线性结构。
数据元素之间存在一个对一个的关系。
③ 树形结构。
数据元素之间存在一个对多个的关系。
④ 图状结构或网状结构。
数据元素之间存在多个对多个的关系。
如图1-1所示为上述四类基本结构的关系图。
图1-1 四类基本结构的关系图(2)数据结构的形式定义数据结构的形式定义为:数据结构是一个二元组Data_Structure==(D,S)其中:D表示数据元素的有限集,S表示D上关系的有限集。
(3)数据结构在计算机中的表示数据结构在计算机中的表示(又称映象)称为数据的物理结构,又称存储结构。
它包括数据元素的表示和关系的表示。
① 元素的表示。
计算机数据元素用一个由若干位组合起来形成的一个位串表示。
② 关系的表示。
计算机中数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象。
并由这两种不同的表示方法得到两种不同的存储结构:顺序存储结构和链式存储结构。
a.顺序映象的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
b.非顺序映象的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑关系。
1、基本概念和术语数据:是对客观事物的符号表示。
数据元素:数据的基本单位,一个数据元素可由若干个数据项组成,数据项是数据的不可分割的最小单位数据对象:性质相同的数据元素的集合是数据的一个子集数据结构:相互之间存在一种或多种特定的关系的数据元素的集合4种基本结构:1.线性结构:结构中的数据元素之间存在一个对一个的关系2.树形结构:结构中的数据元素之间存在一个对多个的关系3.图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系4.集合:结构中的数据元素之间除了“同属于一个集合”的关系之外别无关系数据结构的形式定义为:数据结构是一个二元组Data_Structure=(D,S):D为数据元素的有限集,S是D上关系的有限集逻辑结构:结构定义中的关系描述存储结构/物理结构:数据结构在计算机中的表示,包括数据元素的表示和关系的表示计算机中最小单位:位数据元素:若干个位组合起来形成的一个串(元素/节点可以看成数据元素在计算机中的一个映射)数据域:当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串为数据域数据元素在计算机中的表示方法:顺序映像和非顺序映像顺序映像:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系非顺序映像:借助指示元素存储地址的指针来表示元素之间的逻辑关系数据元素在计算机中的存储结构:顺序存储结构和链式存储结构数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
例如:整型变量,其值集为某个区间上的整数,定义在其上的操作为加减乘除和取模等算术运算若按其值的不同特性,可以分为下列三种类型:原子类型:属原子类型的变量的值是不可分割的。
例如:C语言中的基本类型(整型、实型、字符型和枚举类型)、指针类型和空类型结构类型:结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。
固定聚合类型:属于该类型的变量,其值由确定数目的成分按某种结构组成可变聚合类型:构成可变聚合类型“值”的成分的数目不确定和数据结构的形式定义相对应,抽象数据类型可用以下三元组表示:(D,S,P)/D表示数据对象,S是D上的关系集,P是对D的基本操作集。
数据结构研究的主要内容引言数据结构是计算机科学中的重要基础知识,它研究如何在计算机内存中组织和存储数据,以及如何高效地操作这些数据。
数据结构的研究对于软件开发、算法设计以及计算机系统的优化都具有重要意义。
本文将对数据结构的主要内容进行全面、详细、完整和深入的探讨。
一、基本概念和术语1.1 数据结构的定义•数据结构是指一组数据元素及它们之间的关系和操作,它包括数据的存储方式和数据之间的关系。
数据结构可以分为线性结构、树形结构和图结构等不同类型。
•数据结构的研究要关注数据如何组织和存储,以及如何通过算法实现对数据的高效操作。
1.2 基本术语•数据元素:数据的基本单位,可以是一个整数、一个字符或者一个记录等。
•结点:数据元素的存储单位,可以是一个单元、一个元组或者一个对象等。
•逻辑关系:数据元素之间的关系,如线性结构中的前驱和后继关系、树形结构中的父子关系等。
二、线性结构2.1 线性表•线性表是线性结构中最简单、最常用的一种数据结构,它是由一组具有相同数据类型的元素组成的有序序列。
•线性表的实现方式包括顺序存储和链式存储两种,它们各自有不同的优势和适用场景。
2.2 栈和队列•栈是一种特殊的线性表,它只允许在表的一端进行插入和删除操作。
栈的特点是后进先出(LIFO)。
•队列也是一种特殊的线性表,它只允许在表的一端进行插入操作,另一端进行删除操作。
队列的特点是先进先出(FIFO)。
2.3 字符串•字符串也可以看作是一种特殊的线性表,它是由字符组成的有序序列。
字符串的操作包括插入、删除、查找等。
三、树形结构3.1 树•树是一种非线性的数据结构,它由若干个结点组成,结点之间存在一种层次关系。
树的应用非常广泛,如文件系统、数据库索引等。
•树的常见概念包括根结点、叶子结点、子树和结点的度等。
3.2 二叉树•二叉树是一种特殊的树结构,它的每个结点最多有两个子结点,分别称为左子结点和右子结点。
二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。
陕科大考研历年数据结构摘要:I.引言- 介绍陕科大考研数据结构的概况II.数据结构考试内容解析- 数据结构的基本概念和术语- 常见的数据结构类型及其特点- 数据结构的操作与应用III.陕科大考研数据结构历年真题分析- 历年真题的出题规律和特点- 常考题型和解题技巧- 考试难度和趋势预测IV.备考策略与建议- 学习和复习方法- 应试技巧和策略- 心理调适和作息安排V.结论- 总结陕科大考研数据结构的特点和备考方法正文:陕科大考研历年数据结构随着计算机科学与技术的发展,数据结构作为计算机专业的基础课程,在考研中扮演着举足轻重的角色。
陕西科技大学(简称陕科大)作为我国西部地区知名的高校,其考研数据结构题目一直以来备受关注。
本文将针对陕科大考研历年数据结构进行解析,为考生提供参考。
一、数据结构考试内容解析数据结构是计算机科学与技术专业的基础课程,主要涉及数据结构的基本概念、常见的数据结构类型、数据结构的操作与应用等方面的内容。
在陕科大考研中,数据结构主要考查以下几个方面的内容:1.数据结构的基本概念和术语:包括数据、数据元素、数据项、数据结构、抽象数据类型等基本概念,以及线性结构、非线性结构、有序结构、无序结构等术语。
2.常见的数据结构类型及其特点:包括数组、链表、栈、队列、树、图等常见的数据结构类型,以及它们的特点和应用场景。
3.数据结构的操作与应用:包括数据结构的创建、插入、删除、查找等操作,以及数据结构在排序、查找、图算法等方面的应用。
二、陕科大考研数据结构历年真题分析为了更好地把握陕科大考研数据结构的出题规律和特点,我们需要对历年真题进行深入分析。
根据对历年真题的总结,陕科大考研数据结构真题具有以下特点:1.历年真题的出题规律和特点:真题内容覆盖数据结构的基本概念、常见数据结构类型、数据结构操作与应用等方面的知识点,且题目难度适中,有一定的区分度。
2.常考题型和解题技巧:常考题型包括选择题、填空题、简答题、算法设计题等,解题技巧方面,需要熟练掌握数据结构的基本概念和操作,具备一定的算法设计能力。
数据结构教学设计教案教学设计教案一、教学目标本教学设计旨在帮助学生全面了解数据结构的基本概念、原理和应用,掌握数据结构的基本算法和数据操作技术,培养学生的问题分析和解决能力,以及编程实现数据结构的能力。
二、教学内容1. 数据结构基本概念- 数据结构的定义和分类- 数据结构的基本操作和特性- 数据结构的存储结构2. 线性表- 线性表的定义和基本操作- 顺序表和链表的实现和比较- 线性表的应用3. 栈和队列- 栈的定义和基本操作- 栈的应用- 队列的定义和基本操作- 队列的应用4. 树- 树的定义和基本术语- 二叉树的定义和基本操作- 二叉树的遍历- 树的应用5. 图- 图的定义和基本术语- 图的存储结构- 图的遍历和搜索算法- 最小生成树和最短路径算法三、教学方法1. 讲授法:通过教师讲解、示例演示和理论分析,向学生介绍数据结构的基本概念和原理。
2. 实践操作:通过编程实现数据结构的基本算法和数据操作,让学生亲自动手实践,加深理解。
3. 课堂讨论:鼓励学生提问和讨论,促进学生思维的活跃和深入理解。
4. 小组合作:组织学生进行小组活动,共同解决问题和完成编程任务,培养团队合作能力。
四、教学流程1. 导入环节- 引入数据结构的概念和重要性,激发学生学习的兴趣。
- 回顾前一节课的内容,温习线性表的基本操作。
2. 知识讲解- 介绍栈和队列的定义和基本操作,以及它们的应用场景。
- 讲解树的基本术语、二叉树的定义和遍历算法。
- 解释图的定义和基本术语,介绍图的存储结构和遍历算法。
3. 实践操作- 演示栈和队列的实现代码,并让学生亲自编写代码实现栈和队列的基本操作。
- 演示二叉树的遍历算法,并让学生编写代码实现二叉树的遍历。
- 演示图的存储结构和遍历算法,并让学生编写代码实现图的遍历。
4. 课堂讨论- 针对学生在实践操作中遇到的问题进行讨论和解答。
- 引导学生思考数据结构的应用场景和实际问题的解决方法。
5. 小组合作- 组织学生分成小组,共同解决一个与数据结构相关的实际问题。
数据结构笔记基础:数据结构与算法(一)数据结构基本概念数据(data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号总称数据元素(data element):是数据的基本单位,在计算机中通常被当做一个整体进行考虑和处理数据对象(data object):性质相同的数据元素的集合,是数据的一个子集数据结构(data structure):相互之间存在一种或多种特定关系的数据元素的集合4类基本结构:集合、线性结构、树形结构、图形(网状)结构数据结构的形式定义为数据结构是一个二元组Data Structure = (D,S),其中D是数据元素的有限集,S是D上关系的有限集数据结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构数据结构在计算机中的表示(映像)称为物理结构(存储结构)计算机中表示信息的最小单位是二进制中的一位,叫做位(bit),一到若干位组成一个位串表示一个数据元素,这个位串称为元素或结点数据结构之间关系在计算机中的表示有两种:顺序映像、非顺序映像,并由此得到两种存储结构:顺序存储、链式存储,前者运用相对位置表示数据元素间的逻辑结构,后者借助指针任何一个算法的设计取决于数据(逻辑)结构,而实现依赖于存储结构数据类型是一个值的集合和定义在这个值集上的一组操作的总称数据类型分两种:原子类型、结构类型,前者不可分解(例如int、char、float、void ),后者结构类型由若干成分按某种结构组成,可分解,成分既可以是非结构的也可以是结构的(例:数组)抽象数据类型(Abstract Data Type ):是指一个数学模型及定义在该模型上的一组操作(P8)抽象数据类型格式如下:ADT抽象数据类型名{数据对象:<数据对象的定义>数据关系:<数据关系的定义>数据操作:<数据操作的定义>}ADT抽象数据类型名基本操作格式如下:基本操作名(参数表)初始条件:<初始条件描述>操作结果:<操作结果描述>多形数据类型(polymorphic data type):是指其值得成分不确定的数据类型(P9)抽象数据类型可由固有数据类型来表示和实现(二)算法(概念)和算法分析(时、空性能)算法(algorithm):对特定问题求解步骤的一种描述算法5特性:有穷、确定、可行、输入、输出1、有穷性:算法必须在可接受的时间内执行有穷步后结束2、确定性:每条指令必须要有确切含义,无二义性,并且只有唯一执行路径,即对相同的输入只能得相同输出3、可行性:算法中的操作都可通过已实现的基本运算执行有限次来完成4、输入:一个算法有一到多个输入,并取自某个特定对象合集5、输出:一个算法有一到多个输出,这些输出与输入有着某些特定关系的量算法设计要求(好算法):正确性、可读性、健壮性、效率与低存储需求健壮性是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。