![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java数据结构
文章平均质量分 86
编程题
Z-xina
学无止境,笨鸟先飞
展开
-
基于线性表的图书管理系统(java)
本项目采用线性表的顺序存储结构。以图书信息为例,本项目的数据是一组图书信息,每条图书信息由图书ISBN号、图书名称、作者名称、出版社名称等信息组成,这组图书信息具有相同特性,属于同一数据对象,相邻元素之间存在序偶关系,这些数据具有线性表中数据元素的性质,所以该系统的数据采用线性表来存储。本图书管理系统分为两个结构体,一个是图书结构体,用于存放图书的基本信息,另一个是图书管理结构体,实现管理图书的功能。图书的存储结构用ArrayList实现。原创 2022-12-26 21:47:13 · 1591 阅读 · 1 评论 -
基于线性表的图书管理系统实验报告
本项目采用线性表的顺序存储结构。以图书信息为例,本项目的数据是一组图书信息,每条图书信息由图书ISBN号、图书名称、作者名称、出版社名称等信息组成,这组图书信息具有相同特性,属于同一数据对象,相邻元素之间存在序偶关系,这些数据具有线性表中数据元素的性质,所以该系统的数据采用线性表来存储。本图书管理系统分为两个结构体,一个是图书结构体,用于存放图书的基本信息,另一个是图书管理结构体,实现管理图书的功能。图书的存储结构用ArrayList实现。原创 2022-12-26 21:32:14 · 4042 阅读 · 0 评论 -
18、二分查找——java数据结构
18、二分查找输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。输入格式:输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。输出格式:输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。输入样例:41 2 3 41输出样例:02代码如下:import java.util.Arrays;import java.ut原创 2020-12-20 15:33:21 · 631 阅读 · 1 评论 -
17 、图深度优先遍历——java数据结构
17 、图深度优先遍历编写程序对给定的有向图(不一定连通)进行深度优先遍历,图中包含n个顶点,编号为0至n-1。本题限定在深度优先遍历过程中,如果同时出现多个待访问的顶点,则优先选择编号最小的一个进行访问,以顶点0为遍历起点。输入格式:输入第一行为两个整数n和e,分别表示图的顶点数和边数,其中n不超过20000,e不超过50。接下来e行表示每条边的信息,每行为两个整数a、b,表示该边的端点编号,但各边并非按端点编号顺序排列。输出格式:输出为一行整数,每个整数后一个空格,即该有向图的深度优先遍历结点原创 2020-12-05 16:47:11 · 417 阅读 · 0 评论 -
16、交换二叉树中每个结点的左孩子和右孩子(先序建树,中序遍历输出,交换后中序输出)——java数据结构
交换二叉树中每个结点的左孩子和右孩子以二叉链表作为二叉树的存储结构,交换二叉树中每个结点的左孩子和右孩子。输入格式:输入二叉树的先序序列。提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。输出格式:输出有两行:第一行是原二叉树的中序遍历序列;第二行是交换后的二叉树的中序遍历序列。输入样例:ABC##DE#G##F###输出样例:CBEGDFAAFDGEBC代码如下:import java.io.IOException;原创 2020-11-16 12:50:48 · 2333 阅读 · 0 评论 -
15、求二叉树的叶子结点个数(先序建树,中序遍历并输出叶子结点个数)——java数据结构
求二叉树的叶子结点个数(先序建树,中序遍历并输出叶子结点个数)以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数。输入格式:输入二叉树的先序序列。**提示:**一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。输出格式:输出有两行:第一行是二叉树的中序遍历序列;第二行是二叉树的叶子结点个数。输入样例:ABC##DE#G##F###输出样例:CBEGDFA3import java.io.IOException;import原创 2020-11-16 11:21:17 · 2972 阅读 · 0 评论 -
14、二叉树的遍历(先序建树,层次、中序、后序遍历)——java数据结构
二叉树的遍历(先序建树,层次、中序、后序遍历)import java.io.IOException;import java.util.LinkedList;import java.util.Queue;public class A{ public static void main(String[] args) throws IOException { BtNode btNode=createBiTree(); System.out.print("层次遍历:"原创 2020-11-16 10:35:37 · 139 阅读 · 0 评论 -
13、二叉树的层次遍历(先序建树层次遍历)——java数据结构
二叉树的层次遍历编写程序,要求实现(1)按先序遍历序列建立二叉树的二叉链表;(2)按层次遍历二叉树。构成二叉链表的结点类代码如下:class BtNode{ char data; BtNode lchild,rchild;}按加入空树信息的先序遍历序列建立二叉树的二叉链表代码提供如下://先序遍历序列建立二叉链表public static BtNode createBiTree() throws IOException{ char c=(char) System.in.原创 2020-11-09 17:10:12 · 529 阅读 · 1 评论 -
12、栈、队列和字符串的基本操作(Java数据结构)
7-2 栈、队列和字符串的基本操作 (22分)使用栈与队列逐个处理字符串中的每个字符 将输入的字符串的字符依次入栈,然后输出栈中元素个数与栈顶元素,以空格分隔。 然后将栈中元素依次出栈并输出,出栈时将不等于指定字符的元素依次入队列。 输出队列元素个数,队头元素元素,以空格分隔。 最后输出队列中所有元素。 要求使用Java提供的Stack类、Queue接口和LinkedList类或ArrayList类。输入格式:输入一个个字符串和输入一个字符。输出格式:第一行输出栈中元素个数,栈顶元素(以空格分隔)原创 2020-11-08 08:32:18 · 1332 阅读 · 0 评论 -
11、凯撒密码——String(java数据结构)
凯撒密码恺撒密码是一种简单的古典密码,其加密原理是:选取一个整数K(0<=K<=25),使得原文的每个字母向右移K位得到密文。假定k=2,那么’a’向右移动2位就是’c’;’b’移动2位就是’d’;’y’移动2位又回到了’a’;’z’移动2位成为了’b’.你的任务是编程,其功能是根据一个整数K,将原文加密。输入格式:最多有100组测试数据。每组测试数据第一行为整数K(0<=K<=25),第二行为一段只含有小写字母的原文。每组测试数据长度小于100。当整数K为-1时表示输入结束。原创 2020-10-25 15:00:17 · 1021 阅读 · 1 评论 -
10、字符串反正序连接——String(java数据结构)
字符串反正序连接将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。输入格式:在一行输入一个长度小于20的字符串。在字符串中不要出现换行符,空格,制表符。输出格式:直接输出变化后的字符串。输入样例:abc输出样例:cbaabc代码如下:import java.util.*;public class Main { public static void main(String[] args) { Scanner input = new Scanne原创 2020-10-25 09:21:33 · 1520 阅读 · 0 评论 -
9、找最小的字符串——String(java数据结构)
找最小的字符串本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最小的字符串:Min is: 最小字符串输入样例5LiWangZhaJinXian输出样例:Min is: Jin代码如下:import java.util.*;public class Main { public static voi原创 2020-10-25 09:06:09 · 1759 阅读 · 0 评论 -
8、软硬车厢交替排列——Queue(java数据结构)
软硬车厢交替排列设车辆厂生产了硬座车厢和软座车厢共n节(混合在一起),要求使用队列的基本操作,编程实现所有硬座车厢和所有软座车厢交替排列。例如硬座车厢用H来表示,软座车厢用S来表示,从键盘上输入8节车厢代号为SHHSSHSS ,输出为HSHSHSSS。若从键盘输入8节车厢代号为SHHSHHSH ,输出为HSHSHSHH。输入格式:第一行输入硬座和软座车厢共有的节数,2<=节数<=10; 第二行按节数输入车厢代号。输出格式:若车厢节数超出合法范围,输出“ERROR”,否则输出H和S车厢交原创 2020-10-18 16:18:23 · 1253 阅读 · 4 评论 -
7、队列的基本操作(java数据结构)
队列的基本操作本题重新定义队列出队的操作:队首出队的数字重新在队尾入队。例:队列中有1 2 3三个数字,现要求队首出队,则1从队首出队,同时1从队尾入队,队列变成2 3 1。 入队的顺序为1,2,3,4…n,同时给一个二进制字符串,1代表出队操作,0代表入队操作。输入格式:在第一行有两个数字n,m(n<=100,n<m),其中n为入队的数字个数,m代表操作数。接下来m行,每行一个数字,1或者0,代表不同的操作。输出格式:输出操作后队列的每个数字,数字间以空格分隔,最后一个数字后没有空格原创 2020-10-18 15:11:17 · 4263 阅读 · 2 评论 -
6、顺序表区间元素删除——Linkedlist(java数据结构)
顺序表区间元素删除若一个线性表L采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。输入格式:三行数据,第一行是顺序表的元素个数,第二行是顺序表的元素,第三行是x和y。输出格式:删除元素值在[x,y]之间的所有元素后的顺序表。输入样例:105 1 9 10 67 12 8 33 6 23 10输出样例:1 67 12 33 2代码如下:import java.util.LinkedLi原创 2020-10-18 10:20:44 · 1176 阅读 · 0 评论 -
5、数组循环左移——Linkedlist(java数据结构)
数组循环左移——Linkedlist本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0 a1 ⋯an−1)变换为(am ⋯an−1 a0 a1 ⋯am−1 )(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。输出格式原创 2020-10-18 09:03:37 · 500 阅读 · 0 评论 -
4、逆波兰表达式求值——栈(java数据结构)
逆波兰表达式求值(栈)逆波兰表示法是一种将运算符(operator)写在操作数(operand)后面的描述程序(算式)的方法。举个例子,我们平常用中缀表示法描述的算式(1 + 2)*(5 + 4),改为逆波兰表示法之后则是1 2 + 5 4 + *。相较于中缀表示法,逆波兰表示法的优势在于不需要括号。请输出以逆波兰表示法输入的算式的计算结果。输入格式:在一行中输入1个算式。相邻的符号(操作数或运算符)用1个空格隔开。输出格式:在一行中输出计算结果。限制:2≤算式中操作数的总数≤1001≤算原创 2020-10-17 21:57:38 · 467 阅读 · 0 评论 -
3、堆栈操作合法性——栈(java数据结构)
堆栈操作合法性假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式:对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如原创 2020-10-16 00:22:26 · 421 阅读 · 0 评论 -
2、求最大公约数(java数据结构)
求最大公约数使用辗转相除法和递归求两个正整数m和n的最大公约数。输入格式:输入两个正整数m,n。输出格式:按要求输出辗转相除过程及最终结果,输出结果之间空格分隔。输入样例:21 35输出样例:gcd(21,35) gcd(35,21) gcd(21,14) gcd(14,7) 7import java.util.Scanner;public class Main { public static void main(String[] args) { Scanne原创 2020-10-12 17:46:56 · 409 阅读 · 1 评论 -
1、回文判断(java数据结构)
回文判断回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。输入格式:输入待判断的字符序列,按回车键结束,字符序列长度<20。输出格式:若字符序列是回文,输出“YES”;否则,输出“NO”。输入样例:abdba输出样例:YES方法一:java stack完成import java.util.Scanner;import java.util.Stack;public class Ma原创 2020-10-12 16:49:38 · 1315 阅读 · 1 评论