计算机考研数据结构面试常考,数据结构(考研&面试)

数据结构和算法(持续更新)

参考清华大学严蔚敏数据结构与算法 适用于考研 & 求职

本教程全部采用C语言实现

1. 绪论

1.1 什么是数据结构

Data Struct DS --> 数据之间组织架构/结构

线性 :SeqList List Stack Queue String Array

非线性:Tree Graph

1.1.1 信息处理:

计算机解决问题的大致步骤:

具体问题抽象成数学模型设计算法编写程序测试调整最终解答

1.1.2 数据结构(学科)

一门研究非数值计算的程序设计问题中计算机的操作对象(数据)以及他们之间的关系和操作等的学科。

1.1.3 三方面研究内容

1. 数据的逻辑结构

2. 数据的物理(存储)结构

3. 数据操作实现的算法

问题 =====》 数学模型 =====》编程实现

1.2 基本概念和术语

1.2.1 数据对象 vs 数据元素 vs 数据项

数据对象:具有相同性质的数据元素的集合,是数据的一个子集。

数据元素:数据的基本单位

数据项:一个数据元素包含多个数据项 (最小单位)

1.2.2 结构

结构:数据元素之间的关系

数据结构(Data Structure):相互之间存在一种或多种特定关系的数据元素的集合 也就是说数据结构是带“结构”的数据元素的集合

1.2.3 数据结构的形式定义

数据结构是一个二元组: Data-Structure = (D, S) 其中D是元素的有限集,S是D上关系的有限集

1.2.4 逻辑结构 存储结构(/物理结构)

1. 数据元素之间的逻辑关系

逻辑结构有:集合,线性,树,图

2. 数据元素及其关系在计算机存储器中的形式

物理结构:位(bit),位串,元素,数据域

顺序映像 非顺序映像

1.3 抽象数据类型的表示与实现

1.3.1 数据类型

一个值的集合和定义在这个值集上的一组操作的总称

1.3.2 抽象数据类型

ADT : 指数学模型以及定义在其上的一组操作

ADT Triplet{

数据对象:D={e1,e2,e3|e1,e2,e3∈ElemSet(定义了关系运算的某个集合)}

数据关系:R1={,}

基本操作:

InitTriplet(&T,v1,v2,v3)

操作结果:构造了三元组T,元素e1,e2和e3分别被赋以参数v1,v2,v3的值。

DestroyTriplet(&T)

操作结果:三元组T被销毁。

---

Min(T,&e)

初始条件:三元组T已存在。

操作结果:用e返回T的3个元素中的最小值。

}ADT Triplet

1.4 算法和算法分析

1.4.1. 算法基本概念

算法: 对特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令表示一个或多个操作。

五大特性:确定性、有穷性、可行性、输入、输出

算法与程序:

算法是解决问题的过程

程序是某种程序设计语言对算法的具体体现

区别:

算法必须有穷,程序可以无穷

算法必须正确,程序可以错误

算法可以用伪代码,程序语言描述,程序只能用编程语言编写并编译运行

1.4.2 算法效率度量

好算法:正确、可读、健壮、效率与储存量

时间复杂度

语句频度:语句可重复执行次数

T(n):所有语句之和,n为问题的规模

int sum = 0;

for (int i = 1;i <= n;i++)

sum += i;

//语句频度是n

//T(n) = 1 + n

//O(f(n)) = 1

时间复杂度T(n) = O(f(n)) O表示T(n)与f(n)在n->正无穷时为同阶无穷大

最坏时间复杂度(实际意义)、最好时间复杂度、平均时间复杂度、基本运算频度来分析算法时间复杂度

空间复杂度

算法消耗的存储空间,记S(n) = O(g(n))

除本身所用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储为实现算法所需一些信息的辅助空间。

算法原地工作时算法所需的辅助空间为常量,O(1)

2. 线性表

线性结构特点:

在数据元素的非空有限集中:

(1)存在唯一的一个被称作“第一个”的数据元素;

(2)存在唯一的一个被称作“最后一个”的数据元素;

(3)除第一个之外,集合中的每一个数据元素均只有一个前驱;

(4)除最后一个之外,集合中的每个数据元素均只有一个后继;

2.1 线性表的定义

2.2 线性表的顺序表现和实现

线性表的顺序表示指用一组地址连续的存储单元依次存储线性表的数据元素

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.栈和队列的共同特点是(只允许在端点处插入和删除元素) 4.栈通常采用的两种存储结构是(线性存储结构和链表存储结构) 5.下列关于栈的叙述正确的是(D) A.栈是非线性结构B.栈是一种树状结构C.栈具有先进先出的特征D.栈有后进先出的特征 6.链表不具有的特点是(B)A.不必事先估计存储空间 B.可随机访问任一元素 C.插入删除不需要移动元素 D.所需空间与线性表长度成正比 7.用链表表示线性表的优点是(便于插入和删除操作) 8.在单链表中,增加头结点的目的是(方便运算的实现) 9.循环链表的主要优点是(从表中任一结点出发都能访问到整个链表) 10.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是(D) A.每个元素都有一个直接前件和直接后件 B.线性表中至少要有一个元素 C.表中诸元素的排列顺序必须是由小到大或由大到小 D.除第一个和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件 11.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(D) A.必须是连续的 B.部分地址必须是连续的C.一定是不连续的 D.连续不连续都可以 12.线性表的顺序存储结构和线性表的链式存储结构分别是(随机存取的存储结构、顺序存取的存储结构) 13.树是结点的集合,它的根结点数目是(有且只有1) 14.在深度为5的满二叉树中,叶子结点的个数为(31) 15.具有3个结点的二叉树有(5种形态) 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为(13) 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(cedba) 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为(DGEBHFCA) 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是(gdbehfca) 20.数据库保护分为:安全性控制、 完整性控制 、并发性控制和数据的恢复。 1. 在计算机中,算法是指(解题方案的准确而完整的描述) 2.在下列选项中,哪个不是一个算法一般应该具有的基本特征(无穷性) 说明:算法的四个基本特征是:可行性、确定性、有穷性和拥有足够的情报。 3. 算法一般都可以用哪几种控制结构组合而成(顺序、选择、循环) 4.算法的时间复杂度是指(算法执行过程中所需要的基本运算次数) 5. 算法的空间复杂度是指(执行过程中所需要的存储空间) 6. 算法分析的目的是(分析算法的效率以求改进) ............ .................

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值