赞
踩
数据结构(这门学科): 是一门研究数据的组织, 存储, 和运算的一般方法。
数据: 是客观事物的符号表示, 是所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素: 是数据的基本单位, 在计算机中通常作为一个整体进行考虑和处理。数据元素用于完整地描述一个对象。
数据项: 组成数据元素的、 有独立含义的、 不可分割的最小单位。例如 :学生的姓名学号等。
数据对象: 是性质相同的数据元素的集合, 是数据的一个子集。只要集合内的性质均相同, 都可称之为一个数据对象。
数据结构: 是相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构
二元组 (D, R)
抽象数据类型 : 一般指由用户定义的、 表示应用问题的数学模型, 以及定义在这个模型上的一组操作的总称。
具体包括三部分: 数据对象, 数据对象上关系的集合 以及 对数据对象的基本操作的集合。
定义格式:
|
算法 :是为了解决某类问题而规定的一个有限长的操作序列。
重要特性
评价算法优劣的基本标准
语句频度: 一条语句重复执行的次数
算法的时间复杂度: (一般指的是最坏时间复杂度)
|
算法的空间复杂度
|
|
线性表: 由n(n >= 0)个数据特性相同的元素构成的有限序列。
空表: n = 0的线性表。
非空的线性表或线性结构的特点:
(1) 存在唯一的一个被称作“第一个”的数据元素;
(2) 存在唯一的一个被称作“最后一个”的数据元素;
(3) 除第一个元素外, 结构中的每个数据元素均只有一个前驱;
(4) 除最后一个元素外, 结构中的每个数据元素均只有一个后继。
线性表的顺序存储结构是一种随机存取的存储结构。
平均查找长度: 在查找时, 为确定元素在顺序表中的位置, 需和给定的值进行比较的数据元素个数的期望值称为查找算法在查找成功时的平均查找长度(Average Search Length ASL)
ASL = piCi (i : 1 - n 之和)
链表这东西没什么好说的, 会一些基本的操作就行。
把链表的基本操作写一下。
栈顶, 栈底。
递归的算法效率分析:通过迭代法求解递归方程来计算时间复杂度。
队头, 队尾
顺序队列(循环队列)
少用一个元素空间;
队空的条件: Q.front == Q.rear
队满的条件: (Q.rear + 1) % MAXQSIZE == Q.front
链队
链栈, 顺序队, 链队的代码
串的模式匹配算法
数组很简单就不说了
就把一些基本的定义弄熟就行了
广义表一般记作LS = (a1, a2, a2, ..., an)
其中LS是这个广义表的名称, n为其长度。
ai 可以是单个元素, 也可以是广义表 分别称为 广义表LS的原子和字表。
习惯上, 用大写字母表示广义表的名称, 用小写字母表示原子。
显然, 广义表的定义是一个递归的定义, 因为在描述广义表时又用到了广义表的概念。
例子
概念
树: 是n(n >= 0)个结点的有限集, 它或为空树;或为非空树, 对于非空树T:
树的基本术语
二叉树:是n (n >= 0) 个结点所构成的集合。对于非空树T:
|
对于任意一棵树:
|
遍历二叉树
表达式的前缀表示:波兰式。
表达式的后缀表示:逆波兰式。
表达式的中缀表示:中缀式。
如何根据中缀式写出波兰表达式和逆波兰表达式?
相关博客链接
线索二叉树
构造中序线索二叉树
在二叉树的线索链表上添加一个头结点,令其lchild 指向二叉树的根结点, rchild指向中序遍历时的最后一个节点;同时令二叉树中序遍历序列第一个节点的lchild和最后一个节点的rchild指向头结点。
以结点p为根的子树中序线索化
|
带头结点的二叉树中序线索化
|
遍历线索二叉树
*p
是二叉树的根, 则其后继为空;若*p
是其双亲的右孩子, 则其后继为双亲结点;若*p
是其双亲上午左孩子, 且*p
没有右兄弟,则其后继为双亲结点;若*p
是其双亲的左孩子, 且*p
有右兄弟,, 则其后继为双亲的右子树上按后序遍历列出的第一个结点。树的存储结构
孩子表示法
孩子兄弟法
又称二叉树表示法, 或二叉链表表示法, 即以二叉链表做树的存储结构。链表中结点的两个链域分别指向该节点的第一个孩子结点和下一个兄弟结点。
树与二叉树的转换
遵循左儿子右兄弟的原则。
树和森林的遍历
树的遍历
未完请勿待续
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。