数据结构复习指南.docVIP

  • 2
  • 0
  • 约1.02万字
  • 约 15页
  • 2019-10-21 发布于山西
  • 举报
第一章 绪论 1、根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构?各有什么特点? 根据数据元素之间的逻辑关系,有4种基本结构 1、集合 特点:结构中的数据元素属于一个集合 2、线性结构 特点:一个对一个的关系 3、树形结构:一个对多个的关系 4、图状或网状结构:多个对多个的关系 2、根据数据元素之间的关系在计算机中的表示方法,数据的存储结构有几种?各有什么特点? 1、顺序存储结构 特点:用相对位置来表示数据元素之间的逻辑关系 链式存储结构 特点:用指示元素存储地址的指针表示 具有非连续性 3、算法的重要特性是什么?算法设计的要求是什么? 特性:有穷性 确定性 可行性 输入 输出 设计要求:正确性 可读性 健壮性 效率与地存储量需求 4、数据结构中评价算法的两个重要指标是什么? 时间复杂度 空间复杂度 第二章 线性表 1、理解并能简述线性表的两种存储结构的主要优缺点及各自适用的场合。 顺序存储结构优点是可以实现随机读取,时间复杂度为O(1),空间利用率高;缺点是进行插入和删除操作时比较麻烦,时间复杂度为O(n),同时容量受限制,需要事先确定容量大小,容量过大浪费空间资源,过小不能满足使用要求,会产生溢出问题,虽然可以扩容,但是需要耗时间的; 链式存储结构优点,插入和删除非常简单,前提条件是知道操作位置,时间复杂度是O(1),但如果不知道操作位置则要定位元素,时间复杂度也是O(n),还有一个很大的优点是没有容量的限制,可以在使用过程中动态的分配内存空间,不用担心溢出的问题;缺点是它不能实现随机读取,同时空间利用率不高. 这两个结构各有优缺点,不同的地方选择不同的结构.尽量利用其优点,避免其缺点. 2、定义线性表顺序存储结构。 线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性的数据元素。 优点:随机存取表中元素。缺点:插入和删除操作需要移动元素。 3、顺序表存储结构下初始化、取第i个数据元素、插入、删除、定位Locate、销毁操作的实现。 4、设顺序表La中的数据元素递增有序。请写出将x插入到顺序表的适当位置上以保持该表有序的算法。 5、定义线性链表存储结构 线性链表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据结构。对每个数据元素,除了存储本身的信息之外,还需要存储一个指示其直接后继的信息。这两部分信息组成数据元素的的存储影像,称为结点。它包括两个域:其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称做指针或链。n个结点链结成一个链表,即为线性表的链式存储结构。 6、单链表存储结构下初始化、取第i个数据元素、插入、删除、定位Locate、求长度、创建单链表、销毁操作的实现。 7、实现单链表就地逆置的算法。 第三章 栈和队列 1、栈的特点是什么? 后进先出 2、栈的顺序存储结构定义;顺序存储下初始化、取栈顶、入栈、出栈操作的实现。 顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。 3、栈的链式存储结构定义;链式存储下初始化、取栈顶、入栈、出栈操作的实现。 采用链式存储的栈称为链栈 (1) 初始化栈initStack() 建立一个空栈s。实际上是创建链栈的头结点,并将其next域置为NULL。对应算法如下: LiStack * InitStack( void ) { LiStack * s; s=(LiStack *)malloc(sizeof(LiStack)); s-next=NULL; return s; } (2) 进栈Push(s,e) 将新数据结点插入到头结点之后。对应算法如下: void Push(LiStack *s,ElemType e) { LiStack *p; p=(LiStack *)malloc(sizeof(LiStack)); p-data=e; p-next=s-next; /*插入*p结点作为第一个数据结点*/ s-next=p; } (3)出栈Pop(s,e) 在栈不为空的条件下,将头结点后继数据结点的数据域赋给e,然后将其删除。对应算法如下: int Pop(LiStack *s,ElemType *e) { LiStack *p; if (s-next==NULL) return 0; /*栈空的情况*/ p=s-next; /*p指向第一个数据结点*/ *e=p-data; s-next=p

文档评论(0)

1亿VIP精品文档

相关文档