数据结构
cjps
加油,从小白做起,不再做小白
展开
-
二叉树的层序遍历
二叉树的层序遍历方法:广度优先搜索题目描述:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],返回其层次遍历结果:[[3],[9,20],[15,7]]思路:由于要求输出的结果返回一个二维数组,把每一层单独输出,因此在变量的过程中需要对每一层区分。可以在每一层遍历前记录队列中的结点数量,然后进行遍历这一层。代码:/** * Definition for a binary tre原创 2020-10-08 18:54:12 · 195 阅读 · 0 评论 -
二叉树前中后序遍历框架
遍历的方法有两种解法:递归和迭代先序遍历:判空访问结点左孩子入栈(再次从1开始执行)右孩子入栈(再次从1开始执行)中序遍历:判空左孩子入栈(再次从1开始执行)访问结点右孩子入栈(再次从1开始执行)后序遍历:判空左孩子入栈(再次从1开始执行)右孩子入栈(再次从1开始执行)访问结点1.递归框架:/** * Definition for a binary tree node. * public class TreeNode { * int原创 2020-09-23 11:25:22 · 266 阅读 · 0 评论 -
链栈java实现
链栈实现 javaimport java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;//链表栈public class LinkedStack<Item> implements Iterable<Item> { private int n; priv.原创 2020-09-19 10:43:44 · 190 阅读 · 0 评论 -
支持动态扩容的栈
实现动态扩容的栈 (数组实现)泛型及其优缺点assert 断言对象游离及避免方法迭代器import java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;//实现动态扩容的 数组栈public class ResizingArrayStack<Item> imp.原创 2020-09-18 23:21:10 · 457 阅读 · 0 评论 -
数据结构与算法-数组
1.首先记录下听完后最大的一个模糊的地方—数组越界问题课件描述:警惕数组的访问越界问题了解了数组的几个基本操作后,我们来聊聊数组访问越界的问题。首先,我请你来分析一下这段 C 语言代码的运行结果:int main(int argc, char* argv[]){ int i = 0; int arr[3] = {0}; for(; i<=3; i++){ arr[i] = 0; printf("hello world\n"); }原创 2020-06-29 22:40:07 · 280 阅读 · 0 评论 -
数据结构---图
文章目录图1. 实现有向图、无向图的邻接矩阵和邻接表表示方法1.1 邻接矩阵表示无向图1.2 邻接矩阵表示有向图1.3 邻接表表示无向图1.4 邻接表表示有向图2. 实现图的深度优先搜索、广度优先搜索2.1 深度优先搜索2.2 广度优先搜索3. 实现 Dijkstra 算法、A* 算法3.1 Dijkstra 算法3.2 A* 算法4. 实现拓扑排序的 Kahn 算法、DFS 算法5. 对应的 L...原创 2019-03-14 09:57:20 · 194 阅读 · 0 评论 -
数据结构---二叉查找数与堆
文章目录一、二叉树1.1 实现一个二叉查找树,并且支持插入、删除、查找操作1.2 实现查找二叉查找树中某个节点的后继、前驱节点1.3 实现二叉树前、中、后序以及按层遍历二、堆2.1 小顶堆、大顶堆、优先级队列2.2 实现堆排序三、对应的 LeetCode 练习题3.1 Invert Binary Tree(翻转二叉树)3.2 Maximum Depth of Binary Tree(二叉树的最大深...原创 2019-03-12 10:11:56 · 231 阅读 · 0 评论 -
数据结构---散列表与字符串
文章目录一、散列表(哈希表)1.1 实现一个基于链表法解决冲突问题的散列表1.2 实现一个 LRU 缓存淘汰算法1.3 对应的 LeetCode 练习题二、字符串2.1 实现一个字符集,只包含 a~z 这 26 个英文字母的 Trie 树2.2 实现朴素的字符串匹配算法2.3 对应的 LeetCode 练习题一、散列表(哈希表)1.1 实现一个基于链表法解决冲突问题的散列表(i) 拉链法解...原创 2019-03-10 20:41:28 · 507 阅读 · 0 评论 -
数据结构---排序与二分查找
排序与二分查找文章目录**排序与二分查找**一、排序1.1 归并排序1.2 快速排序1.3 插入排序1.4 冒泡排序1.5 选择排序1.6 堆排序1.7leetcode上的返回滑动窗口中的最大值(239)1.8 编程实现 O(n) 时间复杂度内找到一组数据的第 K 大元素二、二分查找2.1 有序数组的二分查找2.2 模糊二分查找(比如大于等于给定值的第一个元素)2.3 LeetCode练习题一...原创 2019-03-08 15:21:47 · 297 阅读 · 0 评论 -
数据结构---栈、队列、递归
数据结构之栈、队列、递归文章目录数据结构之栈、队列、递归一、栈二、队列三、递归四、LeetCode练习题(未完待续···)一、栈1.用数组实现一个顺序栈2.用链表实现一个链式栈3.编程模拟实现一个浏览器的前进、后退功能1.1用数组实现一个顺序栈栈是一种特殊的线性表,插入和删除操作只能在栈顶进行,具有后进先出(LIFO)的特点。栈的实现,有两种存储结构,分别是顺序存储结构和链...原创 2019-03-07 17:01:45 · 414 阅读 · 0 评论 -
数据结构---数组与链表
数组与链表文章目录数组与链表1.数组1.1实现一个支持动态扩容的数组1.2实现一个大小固定的有序数组,支持动态增删改操作1.3实现两个有序数组合并为一个有序数组1.4 leetcode-两数之和(1)、Happy Number(202)(用哈希思想实现!)1.4.1LeetCode: Two Sum 求解两数之和1.4.2 LeetCode 202 Happy Number2.链表2.1实现...原创 2019-03-07 16:53:00 · 190 阅读 · 0 评论