设计一个包含学生基本信息(学号,姓名,成绩)的顺序表,编程完成如下功能:⑴初始化顺序表L:根据用户指定的学生数,逐个输入学生信息;
⑵打印表中所有学生信息:逐个显示表中所有学生的基本信息;
⑶判断L是否为空表;
⑷查找指定学生:根据姓名进行查找,返回学生的位序,并输出学生的学号和成绩;
⑸根据指定的位置,返回并输出相应学生的基本信息;
⑹给定一个学生信息,将其插入到表中指定的位置;
⑺删除指定位置的学生记录;
⑻统计表中学生个数(求表长度);
⑼销毁表L;
以上为必做题,下面为附加题(选做)。
⑽建立两个有序(学号)的学生顺序表La和Lb:分别向顺序表La和Lb逐个输入m个和n个学生的信息(并不一定按学号大小顺序输入);
⑾打印表La和Lb中的学生信息;
⑿将La和Lb归并为新的有序表Lc;
⒀打印表Lc中的学生信息;
⒁销毁顺序表La、Lb和Lc。
其他要求:⑴将所需要的标准头文件以及一些符号常量的定义等放在Common.h头文件中;
⑵顺序表类型定义(采用定义二)和基本操作函数声明放在Sqlist.h头文件中;
⑶基本操作函数的实现放在Sqlist.cpp文件中;
⑷测试应用程序放在SqlistTestApp.cpp文件中(可以任意重复测试)。
2024/9/22 21:16:40 768KB 顺序表
1
水泥行业袋收尘器
2024/9/20 8:03:07 3KB 程序人生
1
C语言实现二叉树的创建、插入、删除、遍历(先序、中序、后续、深度优先、广度优先)、计算度为0,1,2的节点个数。
包括排序二叉树的实现
2024/9/19 22:29:52 765KB 二叉树
1
(1)输入字符序列,建立二叉链表。
(2)先序、中序、后序遍历二叉树:递归算法。
(3)中序遍历二叉树:非递归算法(最好也能实现先序,后序非递归算法)。
(4)求二叉树的高度。
(5)求二叉树的叶子个数。
(6)对于树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。
(8)借助队列实现二叉树的层次遍历。
(9)在主函数中设计一个简单的菜单,分别调试上述算法。
2024/9/16 7:26:37 88KB 二叉树
1
研究深度学习和卷积神经网络的同学都知道Mnist这个数据库,它是一个手写数字的图像数据集,可以用来作为网络训练的基准测试数据库。
原版数据集是以特定格式存储的四个文件,包括乱序排列的60000个训练样本与10000个测试样本,以及它们对应的标签向量。
现将其中的图片从原文件中读取出来,重新转化为png格式,并将测试集和训练集分别按0~9进行分类,并存放在各自的子文件夹中,以便各位同学进行科研与实验之用。
原数据集下载地址为:http://yann.lecun.com/exdb/mnist/
1
编写程序,用先序递归遍历法建立二叉树的二叉链表存储结构,然后输出其先序、中序、后序以及层次遍历结点访问次序。
其中层次遍历的实现需使用循环队列。
二叉树结点数据类型建议选用字符类型
1
第二题[提示](1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。
进程控制块的格式为:进程名指针要求运行时间已运行时间状态其中,进程名----作为进程的标识,假设五个进程的进程名分别是Q1,Q2,Q3,Q4,Q5。
指针----进程按顺序排成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。
要求运行时间----假设进程需要运行的单位时间数。
已运行时间----假设进程已经运行的单位时间数,初始值为“0”。
状态----有两种状态,“就绪”状态和“结束”状态,初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态变为“结束”,用“E”表示。
(2) 每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“要求运行时间”。
把五个进程按顺序排成循环队列,用指针指出队列连接情况。
另用一标志单元记录轮到运行的进程。
(3) 处理器调度总是选择标志单元指示的进程运行。
由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际启动运行,而是执行:已运行时间+1来模拟进程的一次运行,表示进程已经运行过一个单位的时间。
请注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。
在这里省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。
(4) 进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。
同时,应判断该进程的要求运行时间与已运行时间,若该进程要求运行时间≠已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。
若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应把它的状态修改为“结束”(E)且退出队列。
此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。
(5) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
(6) 在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进称对列的变化。
(7) 为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
1
设二叉排序树的二叉链表存储结构的类型定义如下:typedefstructnode{intdata;//用整数表示一个结点的名structnode*LChild,*RChild;//左右指针域}BSTNode,*BSTree;设计算法并编写程序求解以下几个问题。
8121410731562415119131613(1)键盘输入一个元素序列创建一棵二叉排序树,输出该二叉排序树的中序遍历序列;
例如,若输入45,24,55,12,37,53,60,23,40,70则创建的二叉排序树为:输出结果为:12232437404553556070(2)在(1)中所得的二叉排序树中插入一个值为58的结点,再输出它的中序遍历序列,输出结果为:1223243740455355586070(3)在(1)中所得的二叉排序树中删除值为45的结点,再输出它的中序遍历序列,输出结果为:12232437405355586070(4)利用(1)中所得的二叉排序树的所有叶子结点构造一个带头结点的单链表L。
要求不能破坏这棵二叉排序树。
所得的单链表L如下。
输出该链表各结点的值,输出结果为:23405370(5)设计算法将(1)中所得的二叉排序树的左右子树进行交换,由于二叉树是一种递归定义,所以子树的左右两棵子树也要相交换,依此类推。
最后输出所得到的二叉树的中序遍历序列。
例如,经过上述操作后,(1)中所得的二叉排序树变为如下形式。
输出该二叉树的中序序列,结果为:70605553454037242312(6)设计算法统计并输出(1)中所得的二叉排序树中只有一个孩子结点的结点个数。
输出结果为:3(7)在(1)中所得的二叉排序树中,设计算法并编写程序输出结点40的所有祖先结点。
输出结果为:452437
2024/8/12 15:36:41 39KB 数据结构 C C++
1
本文件含有两个程序,采用硬件IIC,一个是IIC主机发送程序,一个是IIC从机接收发送程序,实验现象是,在两块开发板上,连接上IIC线序(不用交叉),主机发送三个字节数据,从机接收到三个字节数据后,将数据发送回主机,完成主从机的通信,在IIC初试化中可以看到主机的地址设为了0x0A(主机地址没有用到,只是为了和从机进行区分),从机的地址设为了0x0B
2024/7/22 7:33:27 64.68MB stm32f407 cubemax IIC主从通信
1
二叉树层序遍历.mp4
2024/7/21 22:04:22 37.46MB 数据结构
1
共 208 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡