数据结构
lynijk
编程界的小学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构 --二叉搜索树
二叉搜索树 二叉搜索树定义 二叉搜索树也称为二叉查找树、二叉排序树,是一种插入、删除、查找操作性能都不错的数据结构 二叉搜索树首先还是一棵二叉树,但是这个二叉树有一些特点:对于树中的每个结点, 如果左子树存在,那么左子树中所有结点的值都小于该结点的值 如果右子树存在,那么右子树中所有结点的值都大于该结点的值 树中没有值相等的结点 下图就是一棵二叉搜索树,可见满足上述二叉搜索树的特点 二叉搜索...原创 2020-02-26 14:29:27 · 1178 阅读 · 0 评论 -
数据结构 -- 链表
单链表(ForwardList) 链表是链式存储结构的线性表的实现,由于内存地址不连续,所以链表不仅要有数据域,还要存储后继结点指针,如果一个结点只有一个指向后继结点的指针域,那么该线性表称为单链表 头指针与头结点 头指针中存储的是第一个结点的内存地址,通过头指针找到第一个结点,之后通过第一个结点的指针域可以找到第二个结点,以此类推,可以找到链表的最后一个结点,最后一个结点的指针域为空(nullp...原创 2020-02-26 12:37:06 · 448 阅读 · 0 评论 -
数据结构 -- 队列
队列也是一种特殊的线性表,特殊在于只允许在一端插入元素,在另一端删除元素,所以队列有先进先出的特性 队列的可以分为普通队列和带有优先级的队列 术语 队头:允许删除元素的一端 队尾:允许插入元素的一端 入队:向队列中插入元素操作 出队:从队列中删除元素操作 普通队列 #ifndef QUEUE_H_ #define QUEUE_H_ #include <tools/base/noncopya...原创 2020-02-04 12:30:15 · 235 阅读 · 0 评论 -
数据结构 -- 栈
栈可以理解为一种受限的线性表,只能在表尾插入和删除元素。 栈有线性表的特点:每个元素都有且之后一个前驱节点和一个后继节点(第一个节点只有后继节点,最后一个节点只有前驱节点) 同时也有自身的特点:后入先出 术语 栈顶:允许插入和删除元素的一端 栈底:与栈顶相对的一端 入栈:插入数据操作 出栈:删除数据操作 抽象数据类型 ADT 栈(stack) Data 同线性表。元素具有相同的类型,相邻元素具有...原创 2020-02-04 12:05:06 · 266 阅读 · 0 评论 -
数据结构 -- 二叉树
树 线性表是处理一对一关系的数据结构,这里的一对一是指:在线性表中一个结点只有一个前驱结点和一个后继结点(头结点和尾结点除外) 树是处理一对多关系的数据结构,一个结点有一个父结点和多个子结点,所以树型结构有两个特点: 树有一个根结点,而且这个根结点是唯一的 一个结点有且仅有一个父结点,可以有多个子结点(当然也可以没有) 树中结点的分类 根结点 内部结点:不是根结点,并且有子结点的结点 叶结点...原创 2020-02-01 22:09:19 · 430 阅读 · 0 评论 -
数据结构 -- 动态数组
线性表定义 0个或多个数据元素的有限序列 理解:相同类型的元素之间是有顺序的,第一个元素只有一个后继节点,没有前驱节点,最后一个元素只有一个前驱节点,没有后继节点,其他元素各有一个前驱节点和后继节点 抽象数据类型 ADT 线性表(List) Data 数据元素之间满足线性表的定义 Operation InitList(*L) // 初始化操作,建立一个空的线性表 Lis...原创 2020-01-30 14:45:42 · 1450 阅读 · 0 评论 -
数据结构 -- 绪论
数据结构是做什么的? 数据结构是研究数据如何在计算机内存中进行组织和存储,使得我们可以高效的获取数据或者修改数据 学习数据结构有用吗? 目前在学习、做项目中确实没有感受到哪里需要用到数据结构,这是为什么呢? 原因很简单,你使用的编程语言,IDE、操作系统已经把数据结构都实现好了,而你需要的是怎么使用它,怎么在它的基础上增加一些业务逻辑实现一个产品 另外一个档次就是开发IDE、编成语言、操作系统,在...原创 2020-01-30 13:10:58 · 245 阅读 · 0 评论
分享