数据结构的类型:
集合结构、线型结构、树形结构、图形结构
一、概念
- 集合结构:
集合结构就是一个集合,就是一个圆圈中有很多个元素,元素与元素之间没有任何关系。
- 线性结构:
就是一个条线上站着很多个人,这条线不一定是直的,也可以是弯的。相当于一条线被分成了好几段的样子。线性结构是一对一的关系。
- 树形结构:
做开发的肯定或多或少的知道xml解析树形结构跟他非常类似,也可以想象成一个金字塔,树形结构是一对多的关系。
- 图形结构:
这个就比较复杂它属于无穷、无边、无向,图形机构可以理解为多对多,类似于我们人的交际关系。
二、数据结构的存储
数据结构的存储方式一般常用的有顺序存储和链式存储两种结构方式。
- 顺序存储结构
数组:1-2-3-4-5-6-7-8-9-10。这个就是一个顺序存储结构,存储是按顺序的 举例栈是先进后出,后进先出的形式。
- 链式存储结构
链式存储是按数据的地址来进行存储的,而且存储时不按顺序进行,有1,2,3,4,5,6 他们分别对应着各自的地址。执行方式是按小到大的顺序进行排序执行,但是存储是完全属于随机进行。
三、单向链表\双向链表\循环链表
-
单向链表
A->B->C->D->E->F->G->H. 这就是单向链表 H 是头 A 是尾 像一个只有一个头的火车一样 只能一个头拉着跑
-
双向链表
H<- A->B->C->D->E->F->G->H. 这就是双向链表。有头没尾。两边都可以跑 跟地铁一样 到头了 可以倒着开回来
循环链表
发挥想象力 A->B->C->D->E->F->G->H. 绕成一个圈。就像蛇吃自己的这就是循环 不需要去死记硬背哪些理论知识
四、二叉树/平衡二叉树
- 二叉树的定义
二叉树是每个节点最多有两个子树的有序树。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆
2.二叉树的基本概念
二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:
2.1. 空二叉树
2.2. 只有一个根结点的二叉树
2.3. 只有左子树
2.4. 只有右子树
2.5. 完全二叉树