前言
讲到数据结构,就会想到程序 = 数据结构 + 算法这个等式,因为算是跨专业入门,所以在学习java等编程语言的同时,就很想在基础上多下点功夫。看到网上一些前辈感慨,非科班出身和科班出身的差别,就算有些浑浑噩噩的,但是四年的耳濡目染,也可能比那些基础不牢固,但又很努力的非科班同事,学习上手要快。所以更加坚定自己的计算机基础学习,打好了基础,后面的学习相信会更加容易上手。第一本的数据结构书是借了一本C语言版的数据结构,从软件工程的朋友借的。后面在网上看到推荐程杰老师的大话数据结构,现在已经阅读两百页左右,想借博客记录下自己的读书笔记。
数据结构在计算机中的表示称为数据的物理结构,又称存储结构。
数据类型和抽象数据类型;数据类型是用以刻画程序操作对象的特性,抽象数据类型是指一个数学模型以及定义在该模型上的一组操作;可细分为三个类型,分别是原子类型、固定聚合类型、可变聚合类型。
以下格式定义抽象数据类型
ADT 抽象数据类型名{
数据对象:(数据对象的定义)
数据关系:(数据关系的定义)
基本操作:(基本操作的定义)
}ADT 抽象数据类型名
基础知识概念
- 算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作;还有着有穷性,确定性,可行性,输入和输出。、
- 数据:是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
- 数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。
- 数据项:一个数据元素可以由若干个数据项组成。
- 数据对象:是性质相同的数据元素的集合,是数据的子集。
- 数据结构:是相互间之间存在一种或多种特定关系的数据元素的集合。
- 逻辑结构:是指对象中数据元素之间的相互关系。
- 存储结构:是指数据的逻辑结构在计算机中的存储机构。
- 抽象数据类型:一个数学模型及定义在该模型上的一组操作。
- 二叉树是n个结点的有限集合,该集合或者为空集,或者有一个根结点和两颗互不相交的、分别称为根结点的左子树和右子树的二叉树组成。
- 二叉树的特点与性质:
- 每个结点最多有两棵子树
- 左子树和右子树是有顺序的,次序不能任意颠倒
- 即使树中某一结点只有一棵子树,也要区分它是左子树还是右子树。
- 特殊二叉树
- 斜树
- 满二叉树
- 完全二叉树:叶子一结点只能出现在下两层,最下层的叶子一定集中在左部连续的位置,倒数第二层若有叶子结点,一定在右部连续的位置,同样结点数的二叉树,完全二叉树的深度最小。
- 树的存储结构:
父亲表示法:data parent
孩子表示法:data child
孩子兄弟表示法:data firstchild(指针域,存储该结点的第一个孩子结点的存储地址) rightsib(指针域,存储该结点的右兄弟结点的存储地址)
https://www.jianshu.com/u/808054b533e9
数据结构——自学笔记一
原文:https://www.cnblogs.com/yhycoder/p/11939600.html