自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链式前向星

是一种常用的图存储和遍历的数据结构,用于表示稀疏图,实际上就是一种用链表实现的邻接表,以边为基本单位,保存以每个点作为起点的边。其中链表通过数组来模拟,使用头插法维护。一般情况下,我们描述一张图,采用from to weight,表示从from到to两个点之间的边权值weight。为了更加方便地理解链式前向星,我们对一下这个有向图进行分析。使用add函数对链式前向星进行更新;上图中描述则对应如下。

2024-03-21 17:26:48 215 1

原创 汇编语言-子程序设计

目录题目1、将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示。题目2、编写一个主程序,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中小写字符’x’的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”x”.子程序返回字符"x”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”x”及其个数(设为一位十六进制数)。题目3、请编写一个程序来实现简单的程

2024-03-03 14:47:54 422

原创 汇编语言-循环程序设计

由于在程序中数据段默认为十进制,当数据传入汇编环境后会改变为16进制,因此,我们在输出的时候,10进制数转化为16进制数进行输出。使用debug调试,得到正确结果如下所示,其中076C:000C处即max单元存储数组中的最大值007D。用户最多只能输入三次密码,当都输入错误时,显示失败,程序结束。使用debug调试程序观察到排序前的数组元素在内存中的排列。入的密码串显示在屏幕上而只显示‘*’时。设置初始密码为“assembly”运行结果如下所示,最多只能输入三次。运行结果如下所示,与预期结果一致。

2024-03-03 14:41:34 495

原创 汇编语言-分支结构程序设计

如下所示,当输入3后,进入Password Program,输入密码后,程序输出退出,当系统提示是否继续时,只有输入Y/N时才可跳转出提示程序,否则系统将一致询问直到输入正确为止。可以观察到,输入2后进入字符选择程序,输入字符,输出结果,结束字符选择程序后,系统提示是否继续执行,输入Y后,继续执行该游戏,输入N则返回菜单。可以观察到输入字符1后,进入猜字游戏进行猜字猜字游戏结束后,系统进行提问是否继续执行,输入Y,继续执行该游戏,输入N则返回菜单。输入正确密码,但是长度不一致,返回false。

2024-03-03 14:24:19 2050

原创 汇编语言-顺序结构程序设计

的类型为near,说明该标号是在本段内部引用的,偏移地址为0000,属于代码段code,使用debug追踪调试,可以观察到便变量const1和const2以及var1修改之后的值。段的起始字节的物理地址显然是不相同的,两个段使用段组定义伪操作,共用同一个数据段段,其偏移地址必然不相同,添加指令,获取两端首字节的段地址和偏移地址。,与上一题的分析符合一致,两者的物理地址不相同,并且两个数据段的存储位置存在一个字节的间隔,而代码段。的类型为word,偏移地址为0000,属于数据段data2。

2024-03-03 12:01:43 1722

原创 折半查找及其应用

通过分治法查找数组中的元素我们很容易联想到常用的快速排序算法,每次快速排序时,需要将数组一分为二,将枢轴元素小的放在其左边,否则放右边,显然,枢轴的位置就是排序后的最终位置,并且不再发生改变。6、如果左区间的最大值小于等于右区间的最大值,则整体最大值为右区间的最大值,次大值为右区间的次大值和左区间的最大值中的较大者。5、如果左区间的最大值大于右区间的最大值,则整体最大值为左区间的最大值,次大值为左区间的次大值和右区间的最大值中的较大者。类似地,根据左右区间的最小值、次小值合并得到整体最小值、次小值。

2024-03-03 11:34:25 394

原创 求解棋盘覆盖问题

棋盘中的方格数位2^k * 2^k = 4^k,覆盖使用的L形骨牌个数 = (4^k - 1) / 3,采用的方法是将棋盘划分为大小相同的4个象限,根据特殊方格的位置,在中间位置放置一个合适的L形骨牌。这样每个象限和包含特殊方格的象限类似,都需要少覆盖一个方格,也与整个问题类似,所以,采用分治的方法求解,将原问题分解为4个子问题。

2024-03-01 21:46:30 370 1

原创 循环日程安排问题

仔细观察k = 3的比赛日程表,右下角的值与左上角的值相等,左下角的值与右上角的值相等(4行4列),并且k = 3的左上角(4行4列)的值等于k = 2(即4个选手)的比赛日程表,左下角的值等于左上角的值加上数字4(2^(k-1)),因此,可以采用分治策略将所有的选手分为两半,2^k个选手的比赛日程表就可以通过为2^(k-1)个选手设计的比赛日程来决定。(4)、右下角:将左上角直接复制到右下角得到2^(k-1)个选手在后半程的比赛日程。1、每个选手必须与其它n-1个选手各赛一次。

2024-03-01 17:26:06 759 1

原创 数组中第k小的元素问题

通过分治法查找数组中的元素我们很容易联想到常用的快速排序算法,每次快速排序时,需要将数组一分为二,将枢轴元素小的放在其左边,否则放右边,显然,枢轴的位置就是排序后的最终位置,并且不再发生改变。因此,快速排序的核心思想就在于将每个区间中的枢轴元素放在其对应的索引位置,而这个索引就是我们所要查找的k。

2024-01-13 12:25:39 387 1

原创 求解N皇后问题

采用整数数组 [N]存放n 后问题的求解结果,因为每行只能放一个皇后,q[i] (1

2024-01-13 11:51:29 343 1

空空如也

空空如也

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

TA关注的人

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