![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
必看吧
个人博客 https://www.bikan8.cn/
展开
-
数据结构之数组队列、循环队列的实现以及它们的区别
每个队列的实现都有注释 仔细看就行队列接口:package demo;public interface Queue<E> { void enqueue(E e); E dequeue(); E getFront(); int getSize(); boolean IsEmpty(); }数组队列:package demo;import j...原创 2019-08-15 19:48:24 · 783 阅读 · 0 评论 -
数据结构之二分搜索树删除最大最小以及指定结点
二分搜索树其他操作删除结点操作// 查看最大结点的值 public E MaxNum() { return MaxNum(root).e; } private Node MaxNum(Node node) { if (node.right == null) { return node; } return MaxNum(node.right); }...原创 2019-09-06 09:14:40 · 319 阅读 · 1 评论 -
数据结构之二分搜索树JAVA(Binary Search Tree)
二分搜索树:首先二分搜索树是一个二叉树二叉树的定义https://blog.csdn.net/qq_43665697/article/details/100125257(无重复元素)二分搜索树每个结点的值都大于其左子树的值 都小于其右子树的值有重复元素的情况下要看你自己怎么定义了图例:插入元素代码:错误写法// 添加结点 public void add(E...原创 2019-08-30 13:55:54 · 161 阅读 · 0 评论 -
数据结构之什么是二叉树(满二叉树和完全二叉树)以及和树的区别
二叉树定义:二叉树是一种树型结构,它的特点是每个结点至多只有两颗子树(二叉树有左右之分次序不能随意)括号这句话的意思就是说二叉树是有序的 而树无序二叉树的基本形态:(a)空树;(b)只有根结点;(c)右子树为空的二叉树;(d)左右子树均为非空的二叉树;(e)左子树为空的二叉树;满二叉树:一颗深度为k且有2^k - 1 个结点的二叉树成为满二叉树 即每一层都是满满的...原创 2019-08-28 20:10:29 · 1620 阅读 · 0 评论 -
带虚拟头节点的单链表应用 力扣203. 移除链表元素
删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5/** * Definition for singly-linked list. * public class ListNode { * int val;...原创 2019-08-26 20:02:16 · 163 阅读 · 0 评论 -
数据结构之单链表的定义以及实现
单链表的定义:单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的,每个结点的构成:元素(存储的数据)+ 指针(指向后继节点)单链表的操作:删除节点 public E remove(int index)添加节点 public voidadd(int index,E e)链表是否空public boolean isEmpty()获取链表对应索引元素public ...原创 2019-08-26 19:56:04 · 714 阅读 · 0 评论 -
数据结构之栈的应用实例(JAVA) 力扣(LeetCode) 20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:...原创 2019-08-12 13:18:30 · 127 阅读 · 0 评论 -
数据结构之栈的定义以及实现(JAVA)
栈的定义:栈是一种先进后出的线性表 栈定义只能在栈的顶端对数据进行操作栈的操作:进栈public void push(E e)出栈public E pop()栈是否空public boolean isEmpty()获取栈顶元素public E getTop()获取栈大小public int getSize()栈的原理:入栈:出栈:图片引...原创 2019-08-12 13:10:38 · 397 阅读 · 0 评论 -
数据结构之队列的定义和基本原理
队列的定义:队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表队列的操作:入队 enqueue(E e)出队E dequeue()队列是否空 boolean IsEmpty()获取队列头元素E getFront()获取队列大小 int getSize()队列的原理:数组队列入队数组队列出队循环队列 可以理解为首尾相连的...原创 2019-08-15 20:11:21 · 629 阅读 · 0 评论 -
数据结构之单链表的反序操作
实现单链表的反序有2种方法第一种:用3个指针分别指向前中后然后改变结点的指向其实挺绕的在这我就不介绍这种方法了第二种:利用栈 把所有结点放到栈里边然后再把虚拟头节点指向栈顶第一个元素之后让站内元素连接起来即可实现单链表的逆序操作代码: public void reverse() {// 指向链表 Node prev = dummyHead.next; Stac...原创 2019-09-09 18:22:39 · 569 阅读 · 0 评论