
数据结构-基于Java实现
海向
温润如玉 气吞山河
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
栈和队列 设计一个有getMin()功能的栈
【题目】实现一个特殊的栈,在实现栈基本功能的基础上,再实现返回栈中最小元素的操作。【解答】在设计上我们使用两个栈,一个栈用来保存当前栈中的元素,另一个栈用于保存每一步的最小值,这个栈记为stackMin,具体的实现方式有两种。第一种import java.util.Stack;//方式1public class MyStack1 { private Stack s原创 2017-09-04 15:52:35 · 376 阅读 · 0 评论 -
数据结构与算法分析(Java语言描述)—— 队列
1. 队列的模型      队列的基本惭怍是 enqueue(入队),他是在表的末端(叫作队尾(rear))插入一个元素,和 dequeue(出队),它是删除(并返回)在表的开头(也叫作队头(front))的元素。2. 队列的数组实现 &原创 2018-06-24 15:41:08 · 641 阅读 · 0 评论 -
链表问题 删除链表的中间节点和a/b处的节点
package com.angel.num3;class Node{ int value; Node next; Node(int value){ this.value = value; }}public class removeDemo { //删除链表的中间节点 public Node removeMidNode(Node he原创 2017-10-31 20:04:30 · 275 阅读 · 0 评论 -
链表问题 在单链表和双链表中删除倒数第K个节点
【题目】 分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。 【要求】 如果链表长度为N,时间复杂度达到(O(N)),额外控件复杂度达到O(1);单链表package com.angel.num2;class Node{ int value; Node next; public Node(int value){原创 2017-10-30 19:36:24 · 207 阅读 · 0 评论 -
栈和队列 生成窗口最大数组
【题目】 有一个整型数组arr和一个大小为w的窗口,从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 例如 数组为{4,3,5,4,3,3,6,7},窗口大小为3时:最大值数组为{5,5,5,4,6,7}. 如果数组长度为n,窗口大小为w,则一共产生n-w+1个窗口的最大值实现一个函数: -输入:整型数组arr,窗口大小为w -输出:一个长度为n-w+1的数组r原创 2017-10-21 11:07:57 · 312 阅读 · 0 评论 -
链表问题 打印两个有序链表的公共部分
【题目】 给定两个有序链表的头指针head1和head2,打印两个链表的公共部分 【解答】 ● 如果head1的值小于head2,则head1往下移动 ● 如果head2的值小于head1,则head2往下移动 ● 如果head1的值等于head2,则打印这个值,head1和head2都往下移动 ● head1和head2有任何一个移动到null,整个过程终止。class Node{原创 2017-10-28 11:14:43 · 451 阅读 · 0 评论 -
栈和队列 构造数组的MaxTree
【题目】 定义二叉树如下:public class Node{ public int value; public Node left; public Node right; public Node(int data){ this.value=value; }}一个数组的MaxTree定义如下: ◆ 数组必须没有重复元素 ◆ MaxTree原创 2017-10-28 10:39:36 · 302 阅读 · 0 评论 -
栈和队列 用一个栈实现另一个栈的排序
【题目】一个栈元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈,可以申请新的变量,但不能申请额外的数据结构,如何完成排序?【解答】将要排序的栈记为stack,申请的辅助栈记为help,在stack上执行pop操作,弹出的元素记为cur1.如果cur小于或者等于help栈顶元素,则将cur直接压入help2.如果cur大于help栈顶元素,则将hel原创 2017-09-10 12:20:43 · 271 阅读 · 0 评论 -
栈和队列 猫狗队列
【题目】宠物,猫,和狗的类如下class Pet{ private String type; Pet(String type) { this.type = type; } public String getPet(){ return type; }}class Dog extends Pet{ Dog(String type){ super(type); }原创 2017-09-10 10:09:22 · 373 阅读 · 0 评论 -
栈和队列 如何仅用递归函数和栈操作逆序一个栈
【题目】一个栈一次压入1.2.3.4.5,那么从栈顶到栈底分别为5.4.3.2.1.将这个栈转置后,从栈顶到栈底为1.2.3.4.5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能使用其他数据结构。【解答】import java.util.Stack;public class ReverseStack { public static int getAndRemoveLa原创 2017-09-06 14:02:00 · 311 阅读 · 0 评论 -
栈和队列 由两个栈组成的队列
import java.util.Stack;//由两个栈组成的队列public class TwoStackQueue { private Stack stackPush; private Stack stackPop; public TwoStackQueue(){ this.stackPop = new Stack(); this.stackPush = new Sta原创 2017-09-04 16:03:28 · 266 阅读 · 0 评论 -
数据结构与算法分析(Java语言描述)—— 树
1.二叉树2.查找树 ADT —— 二叉查找树3. AVL 树4. 伸展树5. 再谈树的遍历6. B 树7. 标准库中的集合与映射8. 小结原创 2018-06-24 16:55:49 · 13461 阅读 · 1 评论