数据结构与算法
文章平均质量分 53
Ipkiss_Studio
这个作者很懒,什么都没留下…
展开
-
数据结构与算法——二叉树遍历实现
遍历Traverse:就是按照某种次序访问所有节点,且每个节点恰好访问一次。树的遍历可以看成是人为的将非线性结构线性化将树看成三个部分:左子树、右子树、根遍历的方法三种:先序DLR:根、左子树、右子树 中序LDR:左子树、根、右子树 后序LRD:左子树、右子树、根采用了递归的思路面试题:有一个二叉树,它的后序遍历序列为5 4 3 7 6 2 1,中序遍历的序列为4 5 1 3 2 6 7,则其先序遍历的序列是什么?先序:1452367实现:先创建二叉树原创 2022-04-14 11:38:14 · 952 阅读 · 0 评论 -
数据结构与算法——二叉树
树树:树是由一个集合以及该集合上定义的一种关系结构节点的度和树的度节点的度:节点拥有的子树的数目称为节点的度 degree树的度:就是各个节点度的最大值度为0的节点叫叶子节点或终端节点度不为0的节点叫非终端节点或者分支节点除了根之外的分支节点也称为内部节点节点的层次和树的深度节点的层次从根开始定义,根的层次是1,其子树的层次是2树中的节点最大层次树称为树的深度或高度 Depth节点的祖先是从根节点到该节点路径是的所有节点以某节点为根的树中的任一节点都称为该节点原创 2022-04-04 14:31:02 · 1157 阅读 · 0 评论 -
数据结构与算法——栈和队列
栈和队列都是线性表 操作受限制栈(stack )又称为堆栈,它是运算受限的线性表,只能在表的一端进行插入、删除操作,不允许在其他任何位置进行插入、查找、删除等操作。栈顶——进行插入、删除操作的一端栈底——进行插入、删除操作的另一端入栈——添加操作出栈——删除操作特点:先进后出,后进先出push——入栈pop——出栈peek——获取顶部元素栈的存储结构可以采用顺序栈(数组)和链栈(链表)队列(queue)——它和栈一样也是一种运算受限的线性表,其限制是仅原创 2022-03-29 11:39:49 · 904 阅读 · 0 评论 -
数据结构与算法——其他链表和总结
双向链表每一个节点除了自己本身的数据之外,还分别有两个指针,一个用来指向它的后继节点,一个用来指向它的前驱。Java中的LinkedList底层采用的就是双向链表循环链表(单链、双链都适用)总结Java中的线性表:Vector (线程安全) ArrayList(线程不安全,但效率更高) LinkedList(双向链表)相同点:都是顺序表,底层都是长度可以动态增长的数组理解LinkedList源码及其内存变化原理LinkedList底层是双向循环链..原创 2022-03-28 11:55:24 · 727 阅读 · 0 评论 -
数据结构与算法——单链表
链表是一系列的存储元素的单元通过指针串接起形成的,因此每个单元至少有两个域,一个域用于数据元素的存储,另一个域是指向其他单元的指针。单链表一个重要特性就是只能通过前驱节点找到后继节点,而无法从后继节点找到前驱节点垃圾回收器:在一个链表中,我们想删除一个节点,其本质是修改它的指针指向,之后它变成了一个垃圾,被垃圾回收器收走。初始化和添加操作在指定位置添加一个元素public void add(int i, Object e) { // 异常处理...原创 2022-03-27 11:53:29 · 674 阅读 · 0 评论 -
数据结构与算法——线性表
线性表线性表是n个类型相同数据元素的有限序列 通常记做(a0,a1,.....ai) 相同数据类型 有限性 线性表数据个数的长度是一个有限值 当n=0时,表示空表 元素序号范围 [0,n-1] 序列 ai-1 ------- ai 存储结构数组(内存中分配连续的空间,只存数据,不存地址)优点:节省空间、索引查找效率高 数组中的地址是连续的 查找公式:数组的起始地址 + 每个元素大小(占几个字节) * 索引(下标) 缺点:插入和删除效率低......原创 2022-03-25 11:43:49 · 734 阅读 · 0 评论 -
数据结构与算法——时间复杂度,空间复杂度
什么是算法的时间复杂度时间复杂度:算法问题的规模时间复杂度的计算什么是算法的空间复杂度原创 2022-03-24 16:59:13 · 850 阅读 · 0 评论 -
数据结构与算法——入门
基本概念线性表(逻辑结构、存储结构、操作、实现)、二叉树数据结构=逻辑结构+存储结构原创 2022-03-24 15:22:23 · 629 阅读 · 0 评论