
数据结构
文章平均质量分 58
baixian110
这个作者很懒,什么都没留下…
展开
-
java 堆(优先级队列)详解
如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足:Ki = K2i+2) i = 0,1,2…,则称为 小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。原创 2023-06-29 11:42:39 · 2194 阅读 · 0 评论 -
java判断一颗树是不是完全二叉树
给定一个二叉树的头结点TreeNode root,要求返回true或者false。完全二叉树的定义就不说了,那么我们如何判断一颗树是普通树还是完全二叉树呢。实际就是用层序遍历的思想。原创 2023-06-02 21:19:35 · 251 阅读 · 0 评论 -
java循环队列的模拟实现
循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。原题OJ 链接https://leetcode.cn/problems/design-circular-queue/原创 2023-05-26 11:36:03 · 97 阅读 · 0 评论 -
java栈的模拟实现
从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安 全的。MyStack 用于栈相关的成员变量和方法的定义,Test类提供主程序入口和测试,EmptyException类用于栈空时错误的定义。所以栈的底层就是一个输入输出限制的动态顺序表。至此栈的模拟实现就简单介绍到这。模拟实现主要定义三个类。原创 2023-05-25 19:54:35 · 145 阅读 · 0 评论 -
java原生LinkedList详解
就不一一列举了,有兴趣的可以去看我的另一篇博客LinkList的模拟实现,那里面模拟实现了上述的所有方法。这里给个实例。实例// add(elem): 表示尾插 list . add(2);// 在起始位置插入0 list . add(0 , 0);// add(index, elem): 在index位置插入元素elem System . out . println(list);原创 2023-05-25 13:22:33 · 690 阅读 · 0 评论 -
java的LinkList模拟实现
用于LinkList成员变量和成员方法的定义、原创 2023-05-25 13:20:00 · 60 阅读 · 0 评论 -
java链表——LinkList详解
就不一一列举了,有兴趣的可以去看我的另一篇博客LinkList的模拟实现,那里面模拟实现了上述的所有方法。这里给个实例。实例// add(elem): 表示尾插 list . add(2);// 在起始位置插入0 list . add(0 , 0);// add(index, elem): 在index位置插入元素elem System . out . println(list);原创 2023-05-25 13:17:18 · 5396 阅读 · 0 评论 -
如何输出内部类的值
类名.方法(形参),这里面的我们往往的写代码的逻辑时形参指向的内容以及方法所执行的对象都必须全部包含在这个类名所引用的对象里,就像在设计这个代码的时候我总想初始化出合并后的。当我们在实现两个有序链表的合并的时候,需要返回合并后的链表的头结点,那么如何打印这个合并后的链表呢。,也就是这个链表对象,用这个链表对象调用display才对。在定义链表时,我们常常需要定义一个内部类用以表示结点。输出结果是不一样的,display的执行只与。两句执行结果是一摸一样的。原创 2023-05-24 09:53:09 · 91 阅读 · 0 评论 -
单链表的定义及其模拟实现——java
/代表当前列表的头结点的引用 public Node head;//定义一个Node内部类 class Node {//构造方法,注意,结点的构造方法中是不构造next的,因为初始并不知道单个结点指向那里 public Node(int val) {} } }原创 2023-05-23 17:20:01 · 138 阅读 · 0 评论 -
java中ArrayList顺序表的常见操作
这是因为subList与arrayList共用一个value数组,注意subList方法并不是通过copy实现的,所以这不是浅拷贝。中的这个0会认为是indexd的实参而不是Object实参,所以我们在删除存有Integer类型的元素时,需要进行装箱操作。会识别将0识别为Int,而不是Integer类型,将下标 index 位置元素设置为 element。将 e 插入到 index 位置(指定位置插入)注意当我们元素类型是Integer时,代码。将c插入到index位置(插入一个集合)原创 2023-05-12 14:28:25 · 1343 阅读 · 0 评论 -
Java中ArrayList的三种构造方法
List、Set、ArrayList、LinkedList等都实现了connection接口,并且这个c指定的泛型参数一定是E或者E的子类,E是Element的缩写,一般在集合中使用,表示集合中的元素类型。所以这个代码的意思就是定义了泛型c,ArrayList构造方法的形参是一个实现Connecion接口(也就是必须是一个集合)的类型,并且里面的泛型形参指代的是集合元素类型(是E本身或者E的子类)这个实例化就是调用带参数的构造方法,将传入的集合的所有元素复制一份,作为自己的集合元素并开辟相应的内存空间。原创 2023-05-12 14:24:44 · 3208 阅读 · 0 评论 -
java顺序表——ArrayList详解
/数组最大容量 public int [ ] elem;//第一一个数组,用于存储数据 public int useSize;//记录存储了多少数据 }// 新增元素,默认在数组最后新增 public void add(int data) {} // 在 pos 位置新增元素 public void add(int pos , int data) {} // 判定是否包含某个元素 public boolean contains(int toFind) {原创 2023-05-12 14:22:45 · 1546 阅读 · 0 评论 -
java MyArrayList的实现
/数组最大容量 public int [ ] elem;//第一一个数组,用于存储数据 public int useSize;//记录存储了多少数据 }// 新增元素,默认在数组最后新增 public void add(int data) {} // 在 pos 位置新增元素 public void add(int pos , int data) {} // 判定是否包含某个元素 public boolean contains(int toFind) {原创 2023-05-12 14:19:22 · 97 阅读 · 0 评论 -
数制转换(数据结构课程设计C语言版)
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <iostream>#include <math.h>#include<string.h>using namespace std;typedef struct SNode/定义一个栈,采用无头结点的单链表结构{ int data;//定义栈的数据域 struct SNode原创 2021-06-05 21:23:10 · 4499 阅读 · 0 评论