Java实现静态栈和动态栈及其相关操作
栈介绍栈这个东西,也没啥,说白了就是先进后出(LIFO, Last In First Out)的一种数据结构,主要分为静态栈和动态栈,静态栈一般由数组实现,而动态栈则通过链表实现,本文将演示两种栈的创建及其相关操作。本文仅为个人学习的记录,仅供参考。相关操作介绍元素的入栈元素的出栈返回栈的长度判断是否为空栈栈的生成栈的清空Java实现静态栈package stack; public cla...
栈介绍栈这个东西,也没啥,说白了就是先进后出(LIFO, Last In First Out)的一种数据结构,主要分为静态栈和动态栈,静态栈一般由数组实现,而动态栈则通过链表实现,本文将演示两种栈的创建及其相关操作。本文仅为个人学习的记录,仅供参考。相关操作介绍元素的入栈元素的出栈返回栈的长度判断是否为空栈栈的生成栈的清空Java实现静态栈package stack; public cla...
双向链表介绍双向链表是链表的一种,其每个数据节点存在两个指针,分别指向前一个节点和后一个节点,其操作与单向链表类似。本文仅为个人学习的记录,仅供参考。相关操作介绍本文主要实现以下操作:链表的生成判断链表是否为空链表的清空节点的插入头插法尾插法节点的删除返回第i个结点返回链表的节点个数根据给定值,返回该值在链表出现的第一个位置Java实现节点类package linklist; public...
单向链表介绍单向链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素,其节点主要由元素和指向下一节点的指针组成。本文仅为个人学习的记录,仅供参考。相关操作介绍本文主要实现以下操作:链表的生成判断链表是否为空链表的清空节点的插入头插法尾插法节点的删除返回第i个结点返回链表的节点个数根据给定值,返回该值在链表出现的第一个位置代码节点类package linklist; ...
在之前的文章:排序算法——冒泡排序 中,我们描述了传统冒泡排序的过程及其实现,那么,有没有可以改进的地方呢,肯定是有的。假如在数组本身就已经排序好的情况下,或者经过一定的循环之后数组已经被排好了,此时接下来的循环就是在浪费时间,那么如何去解决过程这里引入一个变量isChange记录是否发生交换,如果未发生交换,说明数组已经被排好,此时即可结束循环。具体实现过程看下面代码,理解起来并不难。Ja...
介绍归并排序是创建在归并操作上的一种有效的排序算法,效率为O(nlogn),1945年由冯·诺伊曼首次提出。归并排序算法主要依赖归并(Merge)操作。归并操作指的是将两个已经排序的序列合并成一个序列的操作。本文主要介绍递归法。时间复杂度:最好情况:O(nlogn)平均情况:O(nlogn)最坏情况:O(nlogn)稳定性:稳定额外的空间:O(n)过程递归操作将待排序元素分为大致相同的两个子...