数据结构与算法
血莲丹
这个作者很懒,什么都没留下…
展开
-
Java实现将十六进制转换成十进制
需求 今天看到一道面试题,说是给你一个十六进制的字符串,然后转换成对应的十进制数,乍一看还蛮简单,实际一敲,确实还行,就是着实用到了大量的API。代码public static int hexToDec(String s) { String s1 = s.toUpperCase(); // 全转大写 char[] chars = s1.toCharArray(); // 转成 char 数组 Stack<Character> stack =原创 2021-10-14 20:13:37 · 1771 阅读 · 0 评论 -
Java实现单链表的增删改查
单链表单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:数据域和指针域,数据域就是存储数据的存储单元,指针域就是连接每个结点的地址数据。思路分析首先我们定义一个操作类,用来实现链表的增删改查。在操作类类中再定义一个内部私有的节点类(封装性),在其中定义数据域和指针域,并重写toString()方法。为了便于链表的管理和使用,在操作类中定义一个虚拟头节点head,里面不存放数据,只存放下一个结点的地址。虚拟头节点的下一个结点才是原创 2021-02-12 02:49:56 · 697 阅读 · 0 评论 -
数组实现队列
队列队列是一种先进先出的顺序存储结构,尾端进,头端出。这里我使用数组来实现队列。思路分析队列尾进头出,因此我们需要定义两个变量,相当于指针,分别指向队列的头部和尾部。定义一个数组,用来储存元素。我用front来表示头指针,但是指向的是队列头元素的前一个位置;用rear来表示尾指针,指向的是队列的尾元素。 并且将front和rear都赋值为-1。当头尾指针相等,指向同一块空间,即当rear == front时,队列为空。图解如果只是从模拟实现队列的功能来说确实是完成了,但是此时的队列也有个致命的缺原创 2021-02-07 21:09:33 · 1880 阅读 · 4 评论 -
数组实现循环队列
循环队列队列是一种先进先出的顺序存储结构,尾端进,头端出。这里我用数组来模拟队列,并达到循环队列的效果思路分析首先定义一个数组,来存储数据。随后定义一个头指针front,指向队列的头元素;定义一个尾指针rear,指向待插入的位置,也就是队尾元素的后一个位置。 当头尾指针指向同一个位置时,即rear == front的时候,队列为空,这个好理解。当 (rear+1)%capacity == front时,队列为满。具体请看图解。public class Test { private int[原创 2021-01-28 20:15:28 · 5040 阅读 · 3 评论