Java数据结构考题

news/2024/4/19 15:20:20/文章来源:https://blog.csdn.net/m0_66117547/article/details/129129727

(第 1 题) 哈希查找(难度系数75)

(第 2 题) 图的广度优先搜索(难度系数100)

import com.sun.org.apache.xpath.internal.operations.Bool;import java.io.BufferedInputStream;
import java.util.*;public class BFS {public static void main(String[] args) {int[][] g;boolean[] st;String str;char[] s;int n;Scanner cin = new Scanner(System.in);n = cin.nextInt();g = new int[n][n];st = new boolean[n];str = cin.next();s=str.toCharArray();for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)g[i][j] = cin.nextInt();char start = cin.next().charAt(0);Queue<Character> q = new LinkedList<>();q.add(start);while (!q.isEmpty()){Character t=q.poll();System.out.print(t+" ");int idx=str.indexOf(t);st[idx]=true;char[] temp=new char[27];for(int j=0;j<n;j++)if(g[idx][j]!=0)temp[s[j]-'A']=s[j];for(int i=0;i<26;i++)if(temp[i]!=0&&!st[str.indexOf(temp[i])]&&!q.contains(temp[i]))q.offer(temp[i]);}}
}

(第 3 题) 循环队列(难度系数75)

(第 4 题) 顺序查找(难度系数65)

(第 5 题) 希尔排序(难度系数85)

(第 6 题) 稀疏矩阵的操作(难度系数/65)

(第 7 题) 图的深度优先搜索(难度系数100)

import java.io.BufferedInputStream;
import java.util.Scanner;public class DFS {static int[][] g;static boolean[] st;static String s;static int n;static char start;static char[] a;public static void main(String[] args) {Scanner cin=new Scanner(new BufferedInputStream(System.in));n=cin.nextInt();g=new int[n][n];st=new boolean[n];s=cin.next();for(int i=0;i<n;i++)for(int j=0;j<n;j++)g[i][j]=cin.nextInt();start=cin.next().charAt(0);a=s.toCharArray();dfs(start);}static void dfs(char start){int idx=s.indexOf(start);st[idx]=true;System.out.print(start+" ");char[] temp=new char[27];for(int i=0;i<n;i++)if(g[idx][i]!=0)temp[a[i]-'A']=a[i];for(int i=0;i<26;i++)if(temp[i]!=0&&!st[s.indexOf(temp[i])])dfs(temp[i]);}
}

(第 8 题) 直接插入排序(难度系数75)

(第 9 题) 链式线性表的插入与删除(难度系数65)

(第 10 题)三元组的快速转置(难度系数/85)

(第 11 题) 哈夫曼编码大全(难度系数100)

题目: 哈夫曼编码大全

描述:

关于哈夫曼树的建立,编码,解码。

输入

第一行输入数字N,代表总共有多少个字符以及权值

第二第三行分别是一行字符串,以及每个字符对应的权值

接下来输入一个数M,表示接下来有M行字符串,要求你对每个字符串进行编码

再输入一个数X,表示接下来有X行编码,要求你对每行编码进行解码

输出

第一行输出所有节点的权重

接下来输出N行,每行以 “a:001”的格式输出每个字符对应的编码

接着输出M行,对输入的字符串的编码结果

最后,输出X行的解码结果

输入样例

6

abcdef

50 10 5 5 20 10

2

abcdef

defabaabbc

2

011001100100110110101101100

1100011000110101100101100

输出样例

50 10 5 5 20 10 10 20 30 50 100

a:0

b:100

c:1100

d:1101

e:111

f:101

010011001101111101

11011111010100001001001100

accbdfadb

cacadacfb

import java.io.BufferedInputStream;
import java.util.*;public class Huffman {static char[] s;static HashMap<Character,Integer>mpw=new HashMap<>();static HashMap<Character,String>mpCode=new HashMap<>();static HashMap<String,Character>mpC=new HashMap<>();static ArrayList<Node> list=new ArrayList<>();static Queue<Integer> q=new LinkedList<>();static int n;public static void main(String[] args) {Scanner cin=new Scanner(new BufferedInputStream(System.in));n=cin.nextInt();s=cin.next().toCharArray();for(int i=0;i<n;i++){int x=cin.nextInt();mpw.put(s[i],x);q.add(x);}bulidHuffman();buildCode(list.get(0));int t=cin.nextInt();for(int x:q)System.out.print(x+" ");System.out.println();for(char c:s)System.out.println(c+":"+mpCode.get(c));while(t--!=0){char[] str=cin.next().toCharArray();for (char c : str)System.out.print(mpCode.get(c));System.out.println();}t=cin.nextInt();while(t--!=0){String str=cin.next();String temp="";for(int i=0;i<str.length();i++){temp+=str.charAt(i);if(mpC.containsKey(temp)){System.out.print(mpC.get(temp));temp="";}}System.out.println();}}public static void bulidHuffman(){Node l,r;for(int i=0;i<n;i++)list.add(new Node(s[i],mpw.get(s[i])));while(list.size()!=1){Collections.sort(list, Comparator.comparingInt(o -> o.w));l=list.remove(0);l.code="0";r=list.remove(0);r.code="1";Node node=new Node(l.w+r.w,l,r);list.add(node);q.add(node.w);}}public static void buildCode(Node root){if(root.l!=null){root.l.code= root.code+root.l.code;buildCode(root.l);}if(root.r!=null){root.r.code= root.code+ root.r.code;buildCode(root.r);}if(root.l==null&&root.r==null){mpCode.put(root.ch,root.code);mpC.put(root.code,root.ch);}}
}
class Node{Character ch;Integer w;Node l;Node r;String code="";public Node(Character ch,Integer w){this.ch=ch;this.w=w;}public Node(Integer w,Node l,Node r){this.w=w;this.l=l;this.r=r;}
}

(第 12 题) 最短路径(难度系数100)

(第 13 题) 数制转换(难度系数75)

(第 14 题) 对称矩阵存储(/难度系数65)

(第 15 题) 链式二叉树的创建及遍历(难度系数100)

(第 16 题) 折半查找(难度系数75)

(第 17 题) 合并线性表(难度系数65)

(第 18 题) 括号匹配的检验(难度系数85)

(第 19 题)构造哈夫曼树(难度系数85)

(第 20 题) 二叉排序树的插入删除和查找(难度系数100)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_71803.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AcWing1015.摘花生

AcWing 1015. 摘花生Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图)&#xff0c;从西北角进去&#xff0c;东南角出来。地里每个道路的交叉点上都有种着一株花生苗&#xff0c;上面有若干颗花生&#xff0c;经过一株花生苗就能摘走该它…

Java并发知识点

文章目录1. start()和run()方法的区别&#xff1f;2. volatile关键字的作用&#xff1f;使用volatile能够保证&#xff1a;防止指令重排3. sleep方法和wait方法有什么区别&#xff1f;sleep()方法4. 如何停止一个正在运行的线程&#xff1f;方法一&#xff1a;方法二&#xff1…

多重继承的虚函数表

同一个类,不同对象使用同一张虚函数表 不同类使用不同的虚函数表 子类自己添加的虚函数(非重写),在VS中是将此放在第一个继承类的虚函数表里. #include <iostream> using namespace std;class Father { public:virtual void func1() { cout << "Father::f…

<Linux>vscode搭建Linux远程开发工具

一、下载vscode&#x1f603;可以去vscode的官网下载&#xff0c;不过是外网下载速度较慢提速可以参考&#xff1a;(81条消息) 解决VsCode下载慢问题_vscode下载太慢_wang13679201813的博客-CSDN博客官网&#xff1a;Visual Studio Code - Code Editing. Redefined这里推荐的是…

【数据结构】二叉树的四种遍历

写在前面首先二叉树是一个大家族&#xff0c;这篇文章就讲一讲二叉树的遍历&#xff1a;递归遍历迭代遍历先识概念二叉树的存储结构&#xff0c;可以为顺序存储&#xff0c;即使用数组&#xff1b;也可以为链式存储&#xff0c;即使用链表。我们使用较多的就是链式存储结构&…

Ceres的自动求导实现原理剖析

目录数学原理实现原理总结首先注意数值求导和自动求导在使用的时候的不同之处。 实际上&#xff0c;正是自动求导这个地方使用了类模板&#xff0c;导致它不仅可以传入参数&#xff0c;还可以传入Jet类型的数据&#xff0c;从而实现了参数的雅可比矩阵的计算&#xff0c;完成自…

TPM密钥管理、使用

前面讲过证书相关内容&#xff0c;除了在软件方面有所应用外&#xff0c;在硬件方面也有很多应用。本次讲一下TPM相关的内容。 一、TPM介绍 1.1背景 TCG基于硬件安全的架构是为应对1990s后期日益增多的复杂恶意软件攻击应用而生的。当时以及现在&#xff0c;抵御PC客户端网络…

树状数组(高级数据结构)-蓝桥杯

一、简介树状数组 (Binary Indexed Tree,BIT)&#xff0c;利用数的二进制特征进行检索的一种树状结构。一种真正的高级数据结构&#xff1a; 二分思想、二叉树、位运算、前缀和。高效!代码极其简洁!二、基本应用数列a1,a2,....,an&#xff0c;操作&#xff1a;单点修改&#xf…

详解HashMap

目录 1.hash code 2.数据结构 3.初始化 4.存取 4.1.put 4.2.get 5.迭代 6.扩容 7.JDK1.7版本存在的问题 7.1.性能跌落 7.2.循环链表 8.散列运算 9.扰动函数 1.hash code hash code是使用hash函数运算得到的一个值&#xff0c;是对象的身份证号码&#xff0c;用于…

OpenSumi 是信创开发云的首选

原文作者&#xff1a;行云创新技术总监 邓冰寒 引言 随着云原生应用的日益普及&#xff0c;开发上云也逐步被越来越多的厂商和开发者接受&#xff0c;在这个赛道国内外有不少玩家&#xff0c;国外的 GitHub Codespaces、CodeSandbox&#xff0c;GitPod、亚马逊 Cloud9&#xf…

借力英特尔® Smart Edge,灵雀云 ACP 5G 专网解决方案获得多维度优化加速

近日&#xff0c;灵雀云联合英特尔推出了集成Smart Edge 模块的灵雀云 ACP 5G 专网解决方案&#xff0c;同时共同发布了《借力英特尔 Smart Edge&#xff0c;基于云原生解决方案的灵雀云 ACP 5G 专网版本获得多维度优化加速》白皮书。 得益于云计算技术和 5G 网络的高速发展&am…

Win10 环境 安卓ollvm编译与配置 ndk代码混淆加密

确定你正在使用的ndk版本 查看build.gradle ndkVersion 21.4.7075529 确定你使用的ndk的ollvm版本 C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolchains\llvm\prebuilt\windows-x86_64\bin\llvm-config.exe --version 9.0.9svn 确定了ollvm版本后…

动手学深度学习(第二版)学习笔记 第二章

官网&#xff1a;http://zh.d2l.ai/ 视频可以去b站找 记录的是个人觉得不太熟的知识 第二章 预备知识 代码地址&#xff1a;d2l-zh/pytorch/chapter_preliminaries 2.1 数据操作 2.1. 数据操作 — 动手学深度学习 2.0.0 documentation 如果只想知道张量中元素的总数&#…

GIT分支管理策略

git基本操作git操作的前提条件:本地windows安装git学习idea中的插件使用idea的git基本操作:远程仓库remote更新fetch:git fetch拉取pull: git pull上传push: git push合并merge: git merge 合并分支本地提交commit:git commit分支branch: git branch 查看分支或者 切换分支上述…

软件设计(十四)-UML建模(上)

软件设计&#xff08;十三&#xff09;-原码、反码、补码、移码https://blog.csdn.net/ke1ying/article/details/129115844?spm1001.2014.3001.5501 UML建模包含&#xff1a;用例图&#xff0c;类图与对象图&#xff0c;顺序图&#xff0c;活动图&#xff0c;状态图&#xff…

web网页如何实现响应式导航栏--移动端导航栏

背景&#xff1a; 一提到响应式导航栏&#xff0c;大家第一反应可能就是bootstrap响应式导航栏&#xff0c;这个响应式的一般是针对屏幕变小时&#xff0c;视口出现导航栏&#xff0c;可是&#xff0c;展示到移动端的时候&#xff0c;并没有变化&#xff1f;&#xff1f;&#…

京东测试进阶之路:初入测试碎碎念篇

1、基本的测试用例设计方法 基本的测试用例设计方法&#xff08;边界值分析、等价类划分等&#xff09;。 业务和场景的积累&#xff0c;了解测试需求以及易出现的bug的地方。 多维角度设计测试用例&#xff08;用户、业务流程、异常场景、代码逻辑&#xff09;。 2、需求分析 …

ccc-pytorch-基础操作(2)

文章目录1.类型判断isinstance2.Dimension实例3.Tensor常用操作4.索引和切片5.Tensor维度变换6.Broadcast自动扩展7.合并与分割8.基本运算9.统计属性10.高阶OP大伙都这么聪明&#xff0c;注释就只写最关键的咯1.类型判断isinstance 常见类型如下&#xff1a; a torch.randn(…

虹科新闻 | 虹科与b-plus正式建立合作伙伴关系,共同致力于用于ADAS/AD系统开发的VV测量解决方案

虹科b-plus 携手共创未来&#xff01; 近期&#xff0c;虹科与德国b-plus正式建立合作伙伴关系。未来&#xff0c;虹科与b-plus将共同致力于提供用于ADAS/AD系统开发的V&V测量解决方案。 合作寄语 虹科CEO陈秋苑女士表示&#xff1a;“虹科非常期待与b-plus合作&#x…

Microsoft Dynamics 365:导入License到服务层,通过Business Central Administration Shell

本文主要是Microsoft Dynamics 365的License导入的图解干货&#xff0c;不多赘述&#xff0c;直接上图&#xff1a;第一步&#xff1a;准备好的License文件放在你喜欢的目录下第二步&#xff1a;到开始程序里找到并打开 Business Central Administration Shell3.第三步&#xf…