数据结构与算法

数据结构与算法的一些基本知识

**1、 算法的基本特征:可行性、确定性、有穷性、输入、输出
2、 算法的基本运算和操作:算术运算、逻辑运算、关系运算、数据传输
3、 算法的基本控制结构:顺序结构、选择结构、循环结构
4、 算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法
5、 算法的复杂度主要包括:时间复杂度、空间复杂度
6、 算法的时间复杂度:指执行算法所需要的计算工作量
7、 算法的空间复杂度:指执行这个算法所需要的内存空间
8、 数据结构主要研究:数据的逻辑结构、数据的存储结构、对各种数据结构进行的运算
9、 数据结构研究的目的:提高数据处理的效率,进而使程序更加高效
10、数据处理的效率:数据处理的速度、减少处理过程中占用计算机的存储空间
11、数据处理:指对数据集合中的各元素以各种方式进行运算
12、数据元素:指在数据处理中,每一个需要处理的对象都可以抽象成数据元素
13、数据结构:指反映数据元素之间关系的数据元素集合的表示
14、数据的逻辑结构:指反映数据元素之间逻辑关系的数据结构,其中重要的两要素:数据元素的集合、数据元素在集合上的关系
15、数据的存储结构:指数据的逻辑结构在计算机存储空间的存放形式,常用的存储结构有:顺序、链序、索引等方式
16、数据结构的图形表示中每个元素加上方框成为结点
17、数据结构一般分为:线性结构、非线性结构
18、线性结构满足:有且仅有一个根结点、每个结点最多有一个前驱和后继、在一个线性结构中插入和删除任何一个结点后还是线性结构
19、线性表定义:线性表是由n个数据元素a1、a2、a3、a4„„an组成的一个有限序列,表中每一个数据元素,除了第一个外,有且仅有一个前驱,除了最后一个外,有且仅有一个后继
20、非线性表的特征:有且只有一个根节点a1,它无前驱、有且只有一个终结点an,它无后继、除了第一个和最后一个外,其他所有结点只有一个前驱和一个后继
21、线性表的长度:线性表中的结点的个数n成为线性表的长度,当n=0时,成为空表
22、线性表的顺序存储的特点:所有元素所占的存储空间是连续的、各数据元素在存储空间中是按逻辑顺序一次存放的
23、线性表的随机存取地址计算公式:ADD(ai)=ADD(a1)+(i-1)*k
24、线性表的主要操作:插入、删除、查找、排序、分解、合并、复制、逆转
25、栈的定义:栈是限定在一端进行插入和删除的线性表,它按照“先进后出,后进先出”的原则组织数据
26、栈的顺序存储:在程序设计语言中,一般一维数组S(1:m)作为栈的顺序存储空间,其中m为栈的最大容量
27、栈的基本运算:入栈、退栈、读栈顶元素
28、入栈运算:首先将栈顶指针(top)加1,然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,称为“上溢”错误
29、退栈运算:首先将栈顶元素赋给一个指定的变量,然后将栈顶指针(top)减1。当栈顶指针为0时,说明栈空,成为“下溢”错误
30、队列的定义:队列是指允许在一端进行插入,而在另一端进行删除的线性表,它按照“先进先出”的原则组织数据
31、循环队列:在实际应用中,队列的顺序存储结构一般采用循环队列的形式。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用
32、循环队列空的状态:s=0,且front=rear=m 循环队列满的状态:s=1,且front=rear
33、循环队列的基本运算:入队、退队
34、入队运算:同样队列满时发生“上溢”错误
35、退队运算:同样队列空时发生“下溢”错误
36、线性链表的基本概念:线性表的链式存储结构
37、线性链表的存储结构:线性链表的每个结点中数据域存放数据元素的值,指针域存放好后件结点的存储地址
38、双向链表的存储结构:双向链表的存储结构比线性链表的存储结构多出一个指针域,它用来存放前面的存储地址
39、栈的链式结构:栈的链式结构基本上和线性链表的链式存储结构相同。只是线性链表的链式存储结构的头指针变成了栈的链式结构的栈顶指针
40、队列的链式结构:队列的链式结构和线性链表的存储结构基本相同。只是队列的链式结构保持有两个指针:一个指向队列头的头指针,一个指向队列尾的尾指针
41、线性链表的主要运算:插入、删除、合并、分解、逆转、复制、排列、查找
42、线性链表的特点 :便于插入和删除操作
43、树结构中结点的类型:根结点、父结点、子结点、叶子结点
44、结点的度:一个结点所拥有的后继个数成为结点的度
45、树的度:在所有结点中最大的度数
46、树的深度:树的最大层,也就是树的高度
47、子树:子结点构成的树
48、二叉树的特点:一是非空二叉树只有一个根结点,二是每一个结点最多有两棵子树
49、二叉树的性质:
*********①在二叉树的第k层上,最多有2的(k-1)次方个结点
*********②深度为m的二叉树最多有2的m次方减1个结点
*********③在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个
***********④具有n个结点的二叉树,其深度至少为[log2(n)]+1,其中[log2(n)]表示log2(n)的整数部分
50、满二叉树定义:除最后一层外,每一层上的所有结点都有两个子结点
51、完全二叉树定义:除最后一层外,每一层上的结点数均达到最大值,在最后一层上缺少右边的若干结点
52、二叉树的存储结构:L(i)左指针域R(i)右指针域V(i)数据域
53、二叉树的遍历集中用到了递归的思想,主要有三种遍历方式:前序遍历,中序遍历,后序遍历
54、查找技术包括:静态查找表、动态查找表、哈希表
55、排序技术包括:冒泡排序(有一些也称起泡排序),插入排序(直接插入排序,折半插入排序,2-路插入排序,希尔排序),快速排序,选择排序(简单选择排序,树形选择排序,堆排序),归并排序,基数排序
56、对于排序算法,我们还会关注一个东西就是排序算法的稳定性,首先,排序算法的稳定性的概念:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。
57、稳定的排序算法:冒泡排序、插入排序、归并排序、基数排序
58、不稳定的排序算法:选择排序、快速排序、希尔排序(shell)、堆排序

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值