数据结构
ITWords
本人主要深入研究语言java、scala,擅长方向大数据开发,java编程,系统建设和架构。
展开
-
java实现二维数组和稀疏数组的转化并保存在文件中去
实现的思路:实现代码:public class SparseArray_a { // 原始的棋盘是有11*11 // 有两个棋子,在 1,2 和 2,3 这两个地方 // 其中0 代表空的 1 代表黑子 2 代表 蓝子 public static void main(String[] args) { int chessArr[][] ...原创 2019-08-04 14:35:49 · 460 阅读 · 0 评论 -
java使用单链表模拟栈
思路:(压栈时候采用头插法)代码演示:public class LinkedListStack { private Person top = new Person(-1); // 判断栈是否为空 public boolean isEmpty(){ return top.getNo() == -1; } // 入栈 ...原创 2019-08-06 20:55:18 · 1707 阅读 · 2 评论 -
java使用数组模拟栈实现代码
思路:代码实现:public class ArrayStack { private int maxSize;// 最大的尺寸 private int[] stack;// 使用数组模拟 private int top = -1;// 栈指针 , 初始为-1 public ArrayStack(int maxSize) {// 初始化 ...原创 2019-08-06 17:32:16 · 208 阅读 · 0 评论 -
单向循环列表解决约瑟夫(Josepfu)环问题
思路:核心代码:public class CircleSingleLinkedList { private Person first = null;// 第一个节点 // 创建一个单项循环列表 public void add(int nums){ // 校验一下数据是否合理 if(nums < 1){ ...原创 2019-08-06 16:54:35 · 144 阅读 · 0 评论 -
java实现双向链表的增删改查
实现思路:代码:public class DoubleLinkedList { private Person head = new Person(0,""); // 获取头结点 public Person getHead(){ return head; } // 添加-- 直接添加,没有按顺序添加 public ...原创 2019-08-06 15:11:33 · 186 阅读 · 0 评论 -
java合并两个有序链表使其合并以后依然有序
实现思路1.传入两个链表的头结点2.新建一个链表的头结点newHead3.循环比较传入的两个链表的排序变量,谁小(这里按从小到大安排序)谁加到newHead的后边4.如果有一个链表已经为空,那么就只是针对另一个链表进行添加即可,知道两个链表都为空。代码实现public class SingleLinkedList { private Person head = ...原创 2019-08-06 10:49:19 · 1722 阅读 · 3 评论 -
java实现单链表的逆序打印
实现思路:代码实现:// 逆序打印 public void reversePrint(Person headNode){ if(headNode.next == null){ return;// 空列表,不可以打印 } Stack<Person> person = new Stack<...原创 2019-08-05 21:11:29 · 793 阅读 · 0 评论 -
java实现单链表的反转倒序(优化)
上一篇博文的代码量有点大,所以做了一下优化。上一篇博文的地址:https://blog.csdn.net/new_buff_007/article/details/98503057public void reverseList(Person headNode){ if(headNode.next == null || headNode.next.next == null...原创 2019-08-05 18:14:41 · 933 阅读 · 0 评论 -
java实现单链表的反转倒序
实现的思路:1.首先创建一个临时单链表single2。2.将原来的链表single中的元素挨个取出,在取出的过程中相当于删除。 1)在取出的时候,需要将single的头指针指向它next的next headNode.next = headNode.next.next; 2) 取出res = headNode.next的时候,需要将res后边的都删掉 res.n...原创 2019-08-05 17:55:33 · 550 阅读 · 0 评论 -
java实现链表的增删改查
实现的代码如下:节点的定义:public class HeroNode { public int no; public String name; public String nickname; public HeroNode next; public HeroNode(int no, String name, String nickname) ...原创 2019-08-05 15:00:14 · 914 阅读 · 0 评论 -
java实现循环队列
实现思路:实现的代码:public class CircleQuenue { private int maxSize;// 最大长度 private int[] arr; // 数组,存放值 private int font;// 队列头 private int rear;// 队列尾 public CircleQuenue(int a...原创 2019-08-04 17:22:12 · 220 阅读 · 0 评论 -
java实现计算器的功能
ArrayStackpublic class ArrayStack { private int maxSize;// 最大的尺寸 private int[] stack;// 使用数组模拟 private int top = -1;// 栈指针 , 初始为-1 public ArrayStack(int maxSize) {// 初始化 ...原创 2019-08-10 09:43:18 · 1509 阅读 · 0 评论