【LeetCode刷题(数据结构与算法)】:上下翻转二叉树

给你一个二叉树的根节点 root ,请你将此二叉树上下翻转,并返回新的根节点 你可以按下面的步骤翻转一棵二叉树: 原来的左子节点变成新的根节点 原来的根节点变成新的右子节点 原来的右子节点变成新的左子节点 上面的步骤逐层进行。题目数据保证每个右节点都有一个同级节点(即共享同一父节点的左节点)且不存在子节点 示例 1: 输入:root = [1,2,3,4,5] 输出:[4,5,2,null,null,3,1]...

数据结构与算法 | 数组(Array)

数组(Array)数组(Array)应该是最基础的数据结构之一,它由相同类型的元素组成的集合,并按照一定的顺序存储在内存中。每个元素都有一个唯一的索引,可以用于访问该元素。 // java 数组示例 int[] numbers1 = {2,0,2,3,9,23}; // 或者 int[] numbers2 = new int[6]; 基本概念数组基本概念 —— 数组索引、数组元素、数组长度 数组索引(Ind...

【LeetCode刷题(数据结构与算法)】:有效的括号

首先这里需要用到栈的知识 力扣官方会有相关的栈的实现的接口函数 所以我们这里就直接拷贝一份我们栈的实现的代码 typedef int STDataType; typedef struct Stack{ STDataType* a; int top; int capacity;}ST; void STInit(ST* ps){ assert(ps); ps->a = NULL; ps->capacity ...

【LeetCode刷题(数据结构与算法)】:平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 输入:root = [3,9,20,null,null,15,7] 输出:true 输入:root = [1,2,2,3,3,null,null,4,4] 输出:false 示例 3: 输入:root = [] 输出:true 这道题中的平衡二叉树的定义是:二叉树的每...

【LeetCode刷题(数据结构与算法)】:将二叉搜索树转化为排序的双向链表

将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 对于双向循环列表,你可以将左右孩子指针作为双向循环链表的前驱和后继指针,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点 特别地,我们希望可以 就地 完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中最小元素的指针 示例 1: 输入:root = [4,2,5,1,3] 输出:[1,...

你真的了解数据结构与算法吗?

数据结构与算法,是理论和实践必须紧密结合的一门学科,有关数据结构和算法同类的课程或书籍,有些只是名为“数据结构”,而非“数据结构与算法”,它们在内容上并无很大区别。 实际上,数据结构和算法,没有必要也无法严格区分,两者是“你中有我,我中有你”的关系。或者,将数据结构算做算法的一个分支也未尝不可,比如著名教材《算法导论》,就包含大量数据结构的内容。本书中涉及的问题,如果需要将数据以比较复杂的方式组织起来,就归类...

二叉树的存储结构(顺序存储)—— 数据结构与算法

文章目录 一、前言二、二叉树的顺序存储结构1、二叉树采取顺序存储的原因2、堆的概念及结构 三、堆的实现1、介绍2、向上调整建堆说明实现 3、向下调整建堆说明实现 4、向上向下调整时间复杂度5、堆的插入6、堆的删除7、总代码Heap.hHeap.cTest.c 四、堆的应用堆排序介绍实现 TOP-K问题 五、总结 一、前言 二、二叉树的顺序存储结构 1、二叉树采取顺序存储的原因 普通的二叉树是不适合用数组来存储...

青岛大学_王卓老师【数据结构与算法】Week05_09_顺序栈的操作3_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第05周09–3.3栈的表示和实现5–3.3.2栈的顺序表示和实现4–顺序栈操作3 📚 【Week05】09_顺序栈的操作3 顺序栈的出栈 (1) 判断是否栈空,若空则出错(下溢) (2) 获取...

青岛大学_王卓老师【数据结构与算法】Week05_07_顺序栈的操作1_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第05周07–3.3栈的表示和实现3–3.3.2栈的顺序表示和实现2–顺序栈操作1 📚 【Week05】07_顺序栈的操作1 顺序栈的数据类型定义 #define MAXSIZE 100typ...

第一百零二天学习记录:数据结构与算法基础:初识数据结构与算法

管理系统模型(仓库管理系统)—顺序表 操作对象之间的关系:线性关系 数据结构:线性数据结构、线性表 (例如:学生成绩管理系统、人事管理系统、仓库管理系统、通讯录等。) 操作对象:若干行数据记录 操作算法:查询、插入、修改、删除等 人机对弈模型(三子棋)—树 之所以能对弈:策略已经输入计算机,可以根据当前棋盘格局来预测棋局发展的趋势,甚至最后结局。 计算机的操作对象:各种棋局状态,即描述棋盘的格局信息 计算机的...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.007127(s)
2024-04-23 23:05:47 1713884747