自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 基于WinForm构建的多项式计算器

在这里,我们使用栈这一数据结构,利用其先进后出的特性,将读到的第一个符号压入符号栈,在读到下一个符号,与栈顶的符号的优先级进行比较,若优先级比栈顶的那个符号低,就将栈顶符号的连接的两个数字(数字存在数字栈中)进行运算,否则将当前符号压入符号栈。能够识别四则运算的优先级和括号 的计算器,难点在于如何在遇到乘号,除号或者是括号的时候暂时不计算前面的加法和减法,而先去计算优先级高的运算符。3.2.1判断优先级,若当前符号的优先级小于栈顶符号的优先级,则栈顶符号出栈,同时数栈中两个数字出栈;

2024-07-14 21:49:12 910

原创 基于数学三角形对动态规划的展示

接下来,我们要对上面方法进行优化,如何去减少运行时间,我们很自然可以考虑到,如果将重复计算的次数削减,肯定就节省很多时间,那我们将每个位置算出来的值都保存,下次需要的时候就直接取用,就免去了重复计算,便可以将时间复杂度降低到O(n).分析问题的最优子结构性质:首先假设由问题的最优解导出的子问题的解不是最优的,然后再设法说明在这个假设下可构造出比原问题最优解更好的解,从而导致矛盾。递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次,这种性质称为子问题的重叠性质。

2024-07-12 14:58:29 529

原创 猜拳游戏python详解

以上就是一轮游戏的全部,在一轮游戏结束后,我们要对玩家进行一次访问,是否继续,然后使用条件语句(这为bool类型的判断)来进行操作,特别的说明如果需要退出,就使用break终止语句来跳出整个循环,达到结束游戏的功能,并给出游戏的结束画面输出。首先,要进行游戏的进行,我们要有游戏双方,即玩家和我们的对手,因此使用两个类分别封装两边的功能,在进行双方都出拳了以后,我们需要一个方法(或者说叫函数)来进行判断输赢,因此我们再增加一个裁判类,用以判断游戏的输赢。类是对象的模板,对象则是类的实。这确保了程序的健壮性。

2024-06-03 19:03:35 610

原创 使用new创建动态数组

请注意将p3 加1的效果。因此我们一般选择使用new来创建数组,在运行阶段需要数组,我们则创建它,不需要时,就不创建。我们将指针看作一个指向该元素(数组第一个元素)的手指,int占4个字节,则将手指沿着正确的方向移动4个字节,而后指向第2个元素.....最后指向到第十个元素,这就是手指的移动范围,new语句中提供了识别内存块的每个元素所需要的全部信息。psome是一个指向int(数组第一个元素)的指针,由于编译器不能对psome指向10个整数中的第1个这种情况进行处理,因此,我们应该让程序跟踪元素的数目。

2024-05-29 22:35:05 590

原创 二分查找(图解与完整代码实现)

中查找某一特定元素的搜索算法,思想为,不断将有序查找表“一分为二”,减少搜索区域,以至找到目标元素。注意:递归查找,每次递归,需要缩小范围,每次左右边界的值都在改变,所以需要将左右边界传入,定义为。二分查找图解:以有序数组{4, 9,12,23,30,76, 88,99}为,需要查找30.(low+high)/2 == mid,因此中间元素就是30,该元素就是要找的目标元素。第一轮:23<30,判定在30在23的右边区域,更新搜索区域。中间位置小于目标元素,更新左边界,再次查找。否则更新右边界,再次查找。

2024-04-14 20:02:26 1402 1

原创 队列理解及实现(链表,附完整代码)

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(head)进行删除操作,而在表的后端(tail)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。3. 队列的入队和出队操作:入队操作需要将元素添加到队尾,出队操作需要将队首的元素取出。在入队和出队操作中,需要考虑队列的边界情况,例如队列已满时无法入队,队列已空时无法出队。2. 队列的存储方式:可以使用数组(顺序表)或链表来存储队列中的元素。4. 队列的效率:在实现队列时,需要考虑队列的效率。

2024-04-08 00:09:35 375

原创 栈及其实现(附完整代码实现)

使用malloc函数分配大小为Stack的结构体大小的内存空间,将其转换为Stack类型的指针,将之赋值给变量stack,将首地址给stack->top,表示栈顶为空,最后将大小初始化为0,表示栈目前为空栈。如果不是相同的类型,或者栈中并没有左括号,那么字符串 无效,返回 False。最后,打印了栈的内容,并销毁了栈。当我们遇到一个左括号时,我们会期望在后续的遍历中,有一个相同类型的右括号将其闭合。需要注意的是,这个栈的实现是基于动态内存分配的,因此在使用完毕后需要调用 destroy 函数释放内存。

2024-04-07 14:28:21 384

原创 快速排序与qsort的实现与剖析

选择一个基准元素,然后将数组中所有其他元素与该基准元素进行比较,并根据比较结果将它们放在基准元素的两侧,从而将数组分为两个子数组。应该传入一个比较函数地址,比较两个数据的大小(如果是字符串,则使用string里面的字符串比对,通过比较ASCII的值来实现类似操作),传入的数据类型是不确定的,定义霍尔法sort函数,选择数组最后一个元素为基准元素,然后对两个子数组分别进行快排,直至子数组长度为1或2。此时,整个元素序列被划分为两个部分,第i个位置前的元素都小于a[i],第i个位置后的无素都大于等于a[i]。

2024-04-03 20:20:54 894 1

原创 单链表基础操作及实现

借用别的大佬的一些图,帮助我更好的去理解

2024-04-01 13:02:08 1254 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除