- 博客(21)
- 收藏
- 关注
原创 如何理解稀疏矩阵压缩后失去了随机存取特性
随机存取(Random Access)是一种访问数据的方法,其中每个数据元素可以在恒定时间内(即 O(1) 时间复杂度)直接访问到。这意味着你可以通过一个简单的索引操作直接获取存储在特定位置的数据,而不需要依次查找或遍历。
2024-07-20 20:55:17
62
原创 关于如何理解消除递归不一定需要使用栈
在大多数编程语言的实现中,每次递归调用都会在调用栈(call stack)上创建一个新的栈帧(stack frame),用于保存函数的参数、局部变量和返回地址。(Tail Recursion Optimization,TRO): 如果一个递归函数在最后一步只返回递归调用的结果,这种递归称为尾递归(tail recursion)。这种方法被称为“递归到迭代的转换”(recursion to iteration transformation),它将递归函数改写为一个使用显式栈的迭代过程。
2024-07-20 18:40:32
86
原创 为什么有循环队列没有循环栈
栈的主要操作集中在栈顶,空间利用问题可以通过动态数组来解决,因此没有循环栈的必要。相比之下,队列的操作涉及数组的两端,通过循环队列的方式可以更高效地利用数组空间,解决普通队列存在的前部空间浪费问题。队列的首尾相连,当队列的尾部到达数组末尾时,下一次插入操作会从数组的开头开始。这样可以最大化地利用数组的空间,避免了普通队列因频繁出队操作导致前部空间浪费的问题。栈的操作主要包括入栈(push)和出栈(pop)。由于栈的操作只涉及栈顶元素,不存在像队列那样需要频繁移动元素的问题,因此没有必要引入循环栈的概念。
2024-07-19 17:25:42
116
原创 共享栈链栈顺序栈的栈的上溢和下溢问题
栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。根据存储方式的不同,栈可以分为顺序栈、链栈和共享栈。下面介绍这三种栈的上溢和下溢问题。
2024-07-19 17:22:44
311
原创 typedef的用法介绍
typedef是C语言中的一个关键字,用于为现有的数据类型创建新的名字(类型别名)。这样可以使代码更加简洁易读,也可以方便地进行类型修改和维护。下面详细解释typedef的用法及其常见应用。
2024-07-11 16:24:10
357
原创 关于定义指针后,创建空间内存占用问题的解释
总结起来,无论指针指向什么类型的数据(包括基本数据类型和结构体),指针本身的大小只取决于系统的架构(32位或64位),而不取决于它指向的数据类型。在32位系统上,指针通常占用4个字节;在64位系统上,指针通常占用8个字节。指针的大小与它指向的数据类型无关。无论指针指向的数据类型是什么,在一个给定的系统中,指针的大小都是固定的,与数据类型无关。当然,这还可能受结构体内存对齐(padding)的影响,但这里先不考虑对齐问题。的大小与它指向的数据类型无关,只与系统架构有关。指向,但它的大小独立于指针。
2024-07-09 18:07:07
370
原创 Local Storage,一种客户端存储数据的机制
虽然学过jsp、javaweb、mysql之类的使用,但是不想用,太麻烦了,而且还引入了html、css、js以外的编程语言或数据库软件,因此想要找一个能直接用js实现的注册和登陆验证功能。如图,点击Application(应用),点击Local Storage,点击下列的网页,右边key和value即是保存的账号和密码。登录时,从本地存储中获取存储的密码进行验证,并根据验证结果显示相应的消息或跳转到主页面。这是一种在客户端存储数据的机制,允许网页在用户浏览器中以键值对的形式存储数据。
2024-06-02 19:55:21
190
原创 计网实验三 TCP拥塞控制编程实验
掌握TCP进行拥塞控制的四种算法:慢开始、拥塞避免、快重传、快恢复的工作原理;2. 编程实现拥塞控制算法。操作系统为Windows的计算机,安装有C、C++、Java、Python等编程工具。(1) 阅读互联网标准RFC5681文档。(2) 掌握RFC5681的四种拥塞控制方法工作原理。(3) 编程实现四种拥塞控制方法。要求:① 程序具备必要的输入提示、输出提示。② 程序输入:初始门限值、传输轮次。③ 根据用户输入的“发生超时”或“收到三次重复确认”时的传输轮次实施拥塞控制。
2024-05-19 13:05:09
342
1
原创 夏目友人帐的介绍网站,web前端开发的期末大作业,网页设计。
我在B站录制了完整的操作展示视频:【web前端期末大作业网页开发。夏目友人帐的动漫介绍网页。提前说明的是网页代码大部分都是自己敲出来的,但是也有小部分是直接参考的B站Up主山羊的前端小屋,如果up有意见请联系我删改!下面展示部分网页截图和代码。一共有7个主要页面和1个音乐页面。另外源代码的获取方式也放在B站里了,欢迎询问!
2023-11-01 14:45:34
212
2
原创 动物识别专家系统PYTHON
可以对得到的结论进行解释(比如:得到的结论是“信天翁”,程序可以解释之所以得到的结论是“信天翁”是因为具有“羽毛”和“善飞”这两个事实。这个是主要的py,其他的文件我都打包放在CSDN上了,欢迎下载!如果原作者看到这篇文章不爽或者觉得侵权,请一定要联系我,我马上删!建立一个动物识别系统的规则库,用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等。能搜到这个文章的,估计你就是为了想找篇现成的系统抄抄了,我也废话不多说好叭。除了冲突消解我懒得搞了,其他的都实现了!条规则,规则和动物种类可增加)。
2023-05-01 21:21:47
1733
4
原创 L2-009 抢红包 分数 25
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:KN1P1⋯NKPK其中K(0≤K≤20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(
2022-07-13 13:35:56
115
原创 【C++运算符重载】集合类实现(不要直接copy)
Description定义一个集合类,集合的大小是不确定的,需要使用指针数据成员, 重载运算符“+”,“*”,“-”实现集合的并、交、差运算,对赋值运算符进行重载,定义拷贝构造函数,重载流运算符实现集合的输入、输出。注意,假设A={1,3,5},B={1,5,9},两个集合的差运算A-B,是指从集合A中减去集合B的元素,上面集合A-B的结果是{3}类的定义如下:class settype{public:settype(); //构造函数,默认空集,n=0, set=NULL...
2022-04-28 11:33:50
828
原创 C - hdu 1022 栈
随着新学期的到来,伊格内修斯火车站现在非常繁忙。很多学生想乘火车回学校(因为伊格内修斯火车站的火车是世界上最快的)。但是问题来了,只有一条铁路所有的火车都停。所以所有的火车从一边进来,从另一边出来。对于这个问题,如果A车先进站,而B车在A车离开前进站,那么A车要等到B车离开后才能离开。下面的图片解决了这个问题。现在给你的问题是,车站里最多有9列火车,所有的火车都有一个ID(编号从1到n),火车按照顺序O1进站,你的任务是判断火车是否可以按照顺序O2出站。 输入包含几个测试用例。...
2022-04-18 22:01:36
131
原创 B - Vector-Erase
题目翻译:你会得到一个整数向量。然后,你会得到一些查询。对于第一个查询,将提供整数,它表示向量中的位置。向量中这个位置的值需要被擦除。下一个查询由整数组成,表示向量中位置的范围。在这个范围内的元素应予删除。第二个查询是在执行第一个查询后得到的更新后的向量上执行的。输入格式输入的第一行包含一个整数,下一行包含空格分隔的整数(基于1的索引)。第三行包含一个整数,表示应该从向量中删除的元素的位置。第四行包含两个整数,表示应该从包含a和不包含b的向量中删除的范围。...
2022-04-18 21:45:00
157
原创 A - Vector-Sort,向量,排序
说白了就是排序,看输出样例就知道。#include <iostream>#include<vector>#include<algorithm>//这个是sort的头文件using namespace std;int main(){ int n; cin >> n; vector<int >a; int x; for (int i = 0; i < n; i++) { ...
2022-04-18 17:34:59
261
语言是Python,交互设计是PYQT5 ,动物特征识别专家系统,人工智能实验
2023-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人