数据结构
数据结构java版
凌晨两点钟的夜
但行好事,莫问前程
展开
-
java实现堆栈的表达式求值(仅限于个位数)
这里栈用的是链式存储。本来还想实现多位数的表达式,但是写了一个多小时,总是报错,就先实现简单的吧。 堆栈的链式结构存储实现: //节点的代码 public class Node { public int data; public Node next; //指向下一个节点 public Node() { } public Node(int value) { this.data = value; } @Override原创 2020-07-29 22:11:13 · 178 阅读 · 0 评论 -
单链表的反转(java实现)
单链表的反转 注意: SingleLinkedList 是已经构建好的单链表类,默认有一个序号为0的头节点,还有一些单链表的增、删、查、改等最基础的操作实现。 Node是已经创建好的节点类,Node含有2个字段。一个是节点的序号num(在这个算法并没有用到,在测试时方便显示),另外一个是类型为Node的next字段,用来指向本节点的下一个节点。 由于SingleLinkedList和Node比较简单,代码就不具体展示了,主要看翻转链表的代码 代码实现: private static void test原创 2020-07-22 21:30:32 · 228 阅读 · 0 评论 -
约瑟夫问题
约瑟夫问题 设编号为1,2,…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。 思路: 用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。 链表节点的构建 //单链原创 2020-07-22 21:12:13 · 487 阅读 · 0 评论