- 博客(60)
- 收藏
- 关注
原创 快速排序算法
快速排序开始时left=0,right=5,key=0,a[key]=6,通过PartSort先从右侧找小于a[key],令right指向第一个被找到的小于a[key]的数,然后从左边找到第一个大于a[key],令left指向它,若此时left
2024-05-30 22:24:05 116
原创 求两个正整数m,n的最大公约数
显然,最大公约数t不会大于两者中最小的那一个,则令 t=min(m,n);2.令n去除m,得到余数r,将n的值赋给m,将r的值赋给n,返回第一步。用t除m,n,若除尽则t为最大公约数;否则,令t=t-1,继续尝试;1.如果n=0,则返回m为最大公约数,同时过程结束,否则进入第二步。n>0时 gcd(m,n)=gcd(n,m%n);基于最大公约数的定义:同时整除两个整数的最大整数;n=0时 gcd(m,n)=m;1.欧几里得算法:gcd(m,n);2.连续整数检测算法。
2024-05-21 22:36:28 281
原创 顺序表的一些用法
若i的输入不合法,则返回false,表示插入失败;已知一个顺序表L,其中的元素递增序列排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍递增有序排列,假设插入操作肯定成功,插入成功后返回插入元素所在的位置。从顺序表中删除其值在给定值s与t之间(包含s和t,要求s<t)的所有元素,若s或t不合理或顺序表为空,则返回false,若执行成功则返回true。假设有一顺序表L,其存储的所有数据元素均为不重复的正数,查找L中值为e的数据元素,若找到则返回其下标(下标从0开始),若找不到则返回-1;
2024-04-26 19:41:02 176
原创 编写一个算法将一个带头结点的单链表A={a1,b1,a2,b2,...,an,bn}分解为两个带头节点的单链表A和B,使得A={a1,a2,...,an},B={bn,...,b2,b1},返回B表。
【代码】编写一个算法将一个带头结点的单链表A={a1,b1,a2,b2,...,an,bn}分解为两个带头节点的单链表A和B,使得A={a1,a2,...,an},B={bn,...,b2,b1},返回B表。
2024-04-07 17:16:42 381
原创 将一个带头结点的单链表A分解为两个带头结点的单链表AB,使得A表中含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,且相对顺序不变,最后返回B表。
【代码】将一个带头结点的单链表A分解为两个带头结点的单链表AB,使得A表中含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,且相对顺序不变,最后返回B表。
2024-04-07 17:04:16 421
原创 6-1 邻接矩阵存储图的深度优先遍历
函数DFS应从第V个顶点出发递归地深度优先遍历图Graph,遍历时用裁判定义的函数Visit访问每个顶点。当访问邻接点时,要求按序号递增的顺序。题目保证V是图中的合法顶点。试实现邻接矩阵存储图的深度优先遍历。输入样例:给定图如下。
2023-11-27 20:05:30 449
原创 6-2 邻接表存储图的广度优先遍历
函数BFS应从第S个顶点出发对邻接表存储的图Graph进行广度优先搜索,遍历时用裁判定义的函数Visit访问每个顶点。当访问邻接点时,要求按邻接表顺序访问。题目保证S是图中的合法顶点。试实现邻接表存储图的广度优先遍历。输入样例:给定图如下。
2023-11-26 23:16:33 767
原创 6-2 是否二叉搜索树
定义:一个二叉搜索树是一棵二叉树,它可以为空。如果T是二叉搜索树,则函数返回true,否则返回false。本题要求实现函数,判断给定二叉树是否二叉搜索树。非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。
2023-11-26 22:19:11 344
原创 7-1 根据后序和中序遍历输出先序遍历
第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。在一行中输出Preorder: 以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。
2023-11-06 18:46:48 384
原创 6-4 二叉树求深度和叶子数
其中 T是用户传入的参数,表示二叉树根节点的地址。函数须返回二叉树的深度(也称为高度)。编写函数计算二叉树的深度以及叶子节点数。二叉树采用二叉链表存储结构。
2023-11-05 21:00:01 97
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人