数据结构
文章平均质量分 94
数据结构的基础
小猪媛不圆
这个作者很懒,什么都没留下…
展开
-
JZ3.从尾到头打印链表;JZ14.链表中倒数第K个节点;JZ15.反转链表;JZ16.合并两个有序链表;JZ36.两个链表的第一个公共节点;JZ55.链表中环的入口节点;JZ56.删除链表中重复节点
剑指Offer——链表JZ3.从尾到头打印链表JZ14.链表中倒数第K个节点JZ15.反转链表JZ16.合并两个有序链表JZ3.从尾到头打印链表题目描述程序代码/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/impo原创 2021-04-27 11:43:04 · 204 阅读 · 9 评论 -
用栈实现队列,用队列实现栈,最小栈,设计循环队列的Java做法
用队列实现栈用栈实现队列用队列实现栈奉上链接:用队列实现栈题目描述:请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false。注意:你只能使用队列的基本操作 —— 也就是 p.原创 2021-03-16 19:45:18 · 240 阅读 · 0 评论 -
ArrayList和LinkedList的区别?顺序表和单链表的区别?数组和链表的区别?
1.ArrayList和LinkedList的区别?2.顺序表和单链表的区别?3.数组和链表的区别?原创 2021-03-11 20:07:19 · 875 阅读 · 0 评论 -
七大基于比较的排序算法的基本原理及实现
一、冒泡排序1.1 算法原理在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间最后,持续这个过程,直到数组整体有序。1.2. 具体实现public class Sort { public static void main(String[] args) { int[] array = {1,3,5,7,9,5,2,5,6,8,0,4}; bubbleSort(array); System.out.println(Arrays.toString原创 2020-10-27 14:45:22 · 1102 阅读 · 1 评论 -
深度剖析优先级队列(堆)
二叉树的顺序存储1.1堆的表示:使用数组保存二叉树结构,二叉树用层序遍历方式放入数组中。(一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。)(下图是一个完全二叉树)1.2.下标关系left = 2 * parent +1right = 2 * parent +2parent = (child - 1)/22.堆(heap)2.1概念:堆逻辑上是一棵完全二叉树堆物理上是保存在数组中满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆反之,则是小堆..原创 2020-10-16 16:29:23 · 127 阅读 · 0 评论 -
栈和队列
面试题1.题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。题目分析程序代码import java.util.Deque;import java.util.LinkedList;class Solution { public boolean compareBracket(char left,.原创 2020-10-13 15:46:07 · 183 阅读 · 0 评论