
数据结构
cjw-&
这个作者很懒,什么都没留下…
展开
-
二叉树层序遍历实现
二叉树的层序遍历 下图是一个简单的二叉树例图 实现思路: 1.创建一个队列用于二叉树的层序遍历。 2.将二叉树根节点插入队列中。 3.通过while循环遍历二叉树,直至遍历完整个二叉树后则结束循环。 4.每次循环开始时先进行出队操作,若当前出队元素为null则证明已经完成层序遍历结束循环循环,若不为null则打印该节点的值,并判断该节点是否存在左右子树,若存在则依次插入队列中。 图解上述二叉树的层序遍历过程 依次进行图上操作直至最终队列为空时则层序遍历结束。 实现代码如下: class TreeNod原创 2021-04-10 22:48:28 · 615 阅读 · 0 评论 -
二叉树的遍历(先序、中序、后序)
文章目录先序遍历中序遍历后序遍历 二叉树: 先序遍历 首先遍历根节点,然后在遍历左子树,最后在遍历右子树。 上述二叉树的先序遍历顺序如下: 1->2->4->5->3->6->7 递归实现: public static void preOrder(Node root){ if (root==null){ return; } //先访问根节点 System.out.print(root.val); //递归遍历左子树.原创 2021-03-28 12:02:18 · 776 阅读 · 0 评论 -
【力扣】用队列实现栈
题目描述:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。 思路:因为栈是后进先出的而队列是先进先出的,因此我们可以通过将一个队列的元素进行出队操作直至该队列只剩一个元素,则该元素就可以当做是栈顶元素。 class MyStack { private Queue<Integer> A = new LinkedList<>(); private Queue<Integer> B原创 2021-03-17 17:10:52 · 124 阅读 · 0 评论 -
栈和队列
文章目录1.栈1.1栈的概念1.2栈的实现2.队列2.1队列的概念2.2队列的实现2.3循环队列 1.栈 1.1栈的概念 栈是一种特殊的 线性表,栈只允许在固定的一端进行插入、删除操作。插入、删除的一端被称为栈顶,另一端被称为栈底。栈中的元素遵从后进先出的规则。 压栈:是指将元素插入(压入)栈中的的操作。压栈是在栈顶压入。 出栈:是指将元素删除的操作。出栈是在栈顶进行删除操作。 压栈和出栈的图示如下: 1.2栈的实现 第一种:通过顺序表实现,使用尾插和尾删实现。 代码如下: public class My原创 2021-03-09 17:16:28 · 106 阅读 · 0 评论 -
Java 双向链表
最近刚学完了链表,这是自己写的一个双向链表,如有不足还请指出谢谢! package T0306; import java.util.Scanner; class Node{ int val; Node prev=null; Node next=null; public Node(int val) { this.val = val; } } //实现双向链表 public class MyLinkedList { //记录头结点 p原创 2021-03-06 20:15:46 · 125 阅读 · 0 评论