xmind思维导图下载
描绘
- 数据规划是相同性质的数据元素的集结数据规划三要素是逻辑规划、存储规划、数据的运算
逻辑规划包括集结、线性规划、树形规划、图状规划集结元素间无特别的联络线性规划元素间只需一对一的联络树状规划元素间有一对多的联络图状规划元素间存在多对多的联络线性规划包括栈、行列、串、数组、线性表树状规划包括一般树和二叉树图状规划包富含向图和无向图栈 后出行列 先出数组每个元素的巨细相同栈分为次序栈、链栈和同享栈行列分为次序行列、链式行列、双端行列、循环行列数组分为可紧缩矩阵和稀少矩战线性表分为次序表、单链表、双链表和静态表树形规划分为逻辑规划和存储规划逻辑规划分为满二叉树、完全二叉树、二叉排序树平缓衡二叉树存储规划分为次序二叉树和链式二叉树数据规划三要素的规划分为次序存储、链式存储、哈希存储、索引存储次序存储
逻辑上相邻物理上也相邻可以随机存取元素内部空间可以充分使用可是可以发生外部碎片
- 链式存储
逻辑上相邻物理上可以不相邻只能次序存取元素内部指针域浪费空间可是不会发生外部碎片
- 哈希存取
根据要害词核算元素地址增批改查快散列函数不好可以产哈希冲突
- 索引存储
根据索引表查找元素地址增删慢改查快索引表额定占空间
首要规划体
- 静态次序表
#define maxsize 50
typedef struct {
elemtype data[maxsize];
int length;
}sqlist;
- 动态次序表
#define initsize 100
typedef struct{
elemtype *data;
int maxsize,length;
}seqlist;
- 单链表
typedef struct lnode{
elemtype data;
struct lnode *next;
}lnode,*linklist;
- 双链表
typedef struct dnode{
elemtype data;
struct dnode *prior,*next;
}dnode,*dlinklist;
- 次序栈
#define maxsize 50
typedef struct{
elemtype data[maxsize];
int top;
}sqstack;
- 链栈
typedef struct linknode{
elemtype data;
struct linknode *next;
}*listack;
- 次序行列
#define maxsize 50
typedef struct {
elemtype data[maxsize];
int front,rear;
}sqqueue;
- 二叉树的链式存储
typedef struct bitnode{
elemtype data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
- 条理二叉树
typedef struct threadnode{
elemtype data;
struct threadnode *lchild,*rchild;
int ltag,rtag;
}threadnode,*threadtree;