- 博客(67)
- 收藏
- 关注
原创 基于STL的演讲比赛流程管理
程序功能:·开始演讲比赛:完成整届比赛的流程,每个比赛阶段需要给用户一个提示,用户按任意键后继续下一个阶段·查看往届记录:查看之前比赛前三名结果,每次比赛都会记录到文件中,文件用.csV后缀名保存·清空比赛记录:将文件中数据清空·退出比赛程序:可以退出当前程序
2023-06-29 15:34:43
351
原创 基于多态的职工管理系统(C++)
#include #include "workerManager.h"#include #include "worker.h"#include "employee.h"#include "boss.h"using namespace std;int main(){ //实例化管理者对象 WorkerManager wm; //调用展示菜单成员函数 int choice = 0; while (true) { wm.Show_Menu()
2023-06-16 15:11:36
229
原创 通讯录管理系统(C++)
#include #include #include "通讯录管理系统.h"using namespace std;void modifyPerson(Addressbooks* abs){ cout name; int ret = isExist(abs, name); if (ret != -1) { //姓名 string name; co
2023-06-16 14:30:31
273
原创 快速排序(C语言)
#include #include /*遍历输出*/void printArray(int array[],int length){/*参数一:数组参数二:数组长度*/ int i;
2023-06-03 15:11:21
177
原创 冒泡排序(C语言)
#include #include /*遍历输出函数*/void printArray(int array[],int length){/*参数一:要操作的数组参数二:数组长度*/ int i; for(i=0;i
2023-06-03 14:09:19
76
原创 希尔排序(C语言)
#include #include void shellSort(int arry[],int length,int step)
2023-06-02 17:58:11
454
原创 插入排序(C语言)
#include #include void insertSort(int arry[],int length){ int i,j,k,num; /*外层循环从第二个元素开始比较, 比较从0到他们前一个元素之间有没有合适的位置插入*/ for(i=1;i
2023-06-02 16:33:12
404
原创 哈希表(C语言描述)
#include #include #define NUM 5/*定义哈希列表结构体*/typedef struct HashList{ int num;//目前存放多少数据 char *data;//存放数据的data数组 }HashList;
2023-06-01 16:52:58
168
原创 B树(C语言描述)
一.概念B树是一种多路平衡查找树,不同于二叉平衡树,他不只是有两个分支,而是有多个分支,一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树,B树用于磁盘寻址,它是一种高效的查找算法。
2023-06-01 15:39:53
727
原创 二分查找(C语言)
#include #include /*定义列表结构体*/typedef struct List{ int *data;//数组 int length;//总长度 int num;//当前长度 }List;
2023-05-31 16:14:47
1967
原创 顺序查找(C语言)
#include #include /*线性表结构体*/typedef struct List{ int *data;//元素数组 int length;//可以写入多少元素 int num;//目前元素个数 }List;
2023-05-31 14:42:46
2638
原创 基于C语言的拓扑排序操作
typedef struct Graph//定义图的结构体 { char *vexs;//图的结点 int **arcs;//图的邻接矩阵 int vexNum;//图的结点个数 int arcNum;//图的边个数 }Graph;
2023-05-30 15:57:38
776
原创 基于C语言的prim最小生成树的操作
typedef struct Graph { char* vexs;//顶点的值 int** arcs;//边(二级指针,类似于二维数组) int vexNum;//顶点数量 int arcNum;//边的数量 }Graph;
2023-05-27 15:32:53
110
原创 基于C语言的图的创建(邻接矩阵)和DFS,BFS
#include #include #define MAXSIZE 5typedef struct Graph { char* vexs;//顶点的值 int** arcs;//边(二级指针,类似于二维数组) int vexNum;//顶点数量 int arcNum;//边的数量 }Graph;
2023-05-26 15:24:57
203
原创 基于C语言的哈夫曼树的实现(包含完整代码)
在许多应用中,树中结点常常被赋予一个表示某种意义的数值,称为该结点的权。从树的根到任意结点的路径长度(经过的边数)与该结点上权值的乘积,称为该结点的带权路径长度。树中所有叶结点的带权路径长度之和称为该树的带权路径长度.在含有n个带权叶结点的二叉树中,其中带权路径长度(WPL)最小的二叉树称为哈夫曼树,也称最优二叉树。
2023-05-24 18:57:40
2598
原创 基于C语言的平衡二叉树操作(包含完整代码)
平衡二叉树的定义:为避免树的高度增长过快,降低二叉排序树的性能,规定在插入和删除二叉树结点时,要保证任意结点的左、右子树高度差的绝对值不超过1,将这样的二义树称为平衡二叉树AVL (Balanced Binary Tree),简称平衡树。
2023-05-24 16:02:35
1034
原创 基于C语言的二叉排序树操作(包含完整代码)
二叉排序树(BST也称二叉查找树), 或者是一颗空树,或者是具有下列特性的二叉树:(1)若左子树非空,则左子树上所有结点的值均小于根结点的值(2)若右子树非空,则右子树上所有结点的值均大于根结点的值(3)左右子树也分别是一颗二叉排序树
2023-05-23 14:48:37
532
原创 基于C语言的后序线索二叉树的实现(包含完整代码)
用ABDEC举个例子,后序线索二叉树构建的原理与过程:后序序列为DEBCA,结点D无左孩子,也无前驱故置空,无右孩子,将右链域指向后继E;结点E无左孩子,将左链域指向前驱D,无右孩子,将右链域指向后继B;结点C无左孩子,将左链域指向前驱B,无右孩子,将右链域指向后继A,得到的后序线索二叉树如下图所示。
2023-05-22 17:31:39
911
原创 基于C语言的先序线索二叉树(包含完整代码)
先序序列为ABDEC,然后依次判断每个结点的左右链域,如果为空则将其改造为线索。结点A,B均有左右孩子;结点D无左孩子,将左链域指向前驱B,无右孩子,将右链域指向后继E;结点E无左孩子,将左链域指向前驱B,无右孩子,将右链域指向后继C;结点C无左孩子,将左链域指向前驱E,无右孩子,也无后继故置空,得到的先序线索二叉树如上图所示。
2023-05-22 16:25:58
710
原创 基于C语言的字符串匹配算法(KMP匹配算法)(包含完整代码)
KMP算法是暴力匹配算法的改进,相比于暴力匹配,KMP的主串指针不回溯,从而降低了时间复杂度.
2023-05-19 15:58:08
542
原创 基于C语言的循环队列实现(包含完整代码)
循环队列不同于非循环队列和链表,其操作不需要定义next指针,只是单纯的定义一个固定的结构体变量,此结构体中的数组变量已经可以包含全部的已定义的队列长度.(如果采用循环链表来实现队列也可行,但队列会成为可变长的)
2023-05-18 16:48:03
1275
3
原创 基于C语言的队列操作(包含完整代码)
队列和链表,栈一样都属于线性表,队列的基本操作与链表类似,队列就是操作受限的链表,队列的特性是先进先出.首先需要两个头文件#include 和#include
2023-05-18 14:20:22
357
原创 基于C语言中栈的定义与操作(包含完整代码实现)
栈是一种特殊的线性表,只能在一端进行操作,它的特性是先进后出,在求表达式的值,解决一些递归问题,计算进制转换等等有诸多应用。
2023-05-17 19:27:06
608
原创 基于C语言的非循环单链表的各种操作(包含完整代码实现)
typedef struct Node//定义链表结构体int data;//数据域//指针域}Node;
2023-05-17 14:45:14
120
原创 (c语言描述)使用单链表构建有序数组,以及单链表的插入与删除
在构建有序数组时,直接使用传统的方法会导致程序运行效率不高(插入新的变量时,往后的所有数字都需要依次向后移动),而使用链表就可以只修改指针的指向而不用移动元素位置,时间复杂度大大降低。
2023-05-12 16:31:28
476
原创 CCF计算机试题-田地丈量
每块田地可视为平面直角坐标系下的一块矩形区域,由左下角坐标 (x1,y1) 和右上角坐标 (x2,y2) 唯一确定,且满足 x1
2023-05-09 14:08:35
378
原创 输入一串数字,去重
if(b[a[i]]=='#')//检查该元素下标对应的b数组中是否已经写入了数字。//向b数组对应元素下标的位置上中写入对应的数字。i++)//输出b数字中的数字,#是未输入的标志,跳过#不输出。//将数组b的每位都写入#i++)//数字只有0~9,对应数组元素下标0~9。=a[i+1])//仅输出不相同的数。printf("请输入要输的数字个数n:");printf("请输入%d个数:",n);printf("请输入10个数:");
2023-03-10 18:15:26
312
原创 输入 10 个单词 对单词进行排序
if(strcmp(a[j],a[j+1])>0)//strcmp是比较函数,大的放后面。//函数strcpy是复制,将后一个复制到前一个。//a数组代表输入的单词,b数组代表中间变量。i++)//与冒泡排序原理类似。printf("输入10个单词:\n");printf("单词排序后:\n");//输入 10 个单词 对单词进行排序。
2023-03-10 16:54:18
1194
原创 删除一个字符串中特定的字符(除字母空格外其它所有字母)
gets(a); len=strlen(a);//记录数组a写入了多少元素 for(i=0,j=0;i='a'&&a[i]='A'&&a[i]
2023-03-10 16:16:02
3083
1
原创 (两种方法)顺序移动数组
int main(){ int a[10]={0,1,2,3,4,5,6,7,8,9}; int i,n,m;//n代表移动的位数,m代表中间变量 printf("请输入移动的位数:"); scanf("%d",&n); printf("移动前:\n"); for(i=0;i
2023-03-09 15:14:49
365
原创 输入年、月、日,计算该日是该年的第几日
0&&year%4==0))//判断是否为闰年。i++)//闰年则将该月前面的所有月份的天数相加。i++)//平年则将该月前面的所有月份的天数相加。//最后再加上该月的天数。//最后再加上该月的天数。printf("该日是该年的第%d天",sum);printf("请输入年,月,日:");printf("闰年\n");printf("平年\n");//输入年、月、日,计算该日是该年的第几日。
2023-03-08 17:05:50
165
原创 (普通法+递归法)一个球从 100m 高度自由下落,每次反弹原来高度一半再落下,求第 10 次落地总共经过多长距离,第 10 次落地反弹高度多高
【递归】一个球从 100m 高度自由下落,每次反弹原来高度一半再落下,求第 10 次落地总共经过多长距离,第 10 次落地反弹高度多高。double total(int n,double lenth)//n为落地的次数,lenth是初始球的高度{ if(n==1) return 100;//初始球的高度为100米 else return lenth+2*(total(n-1,lenth/2)/2);//n-1次小球的距离+2*小球弹起的高度}
2023-03-08 15:55:06
2446
原创 2/1+3/2+5/3+8/5+13/8…的前 20 项的和
/m是分子,n是分母,k是中间变量,sum是最终结果。//下一项的分子等于上一项的分子加分母的值。//分母除以分子再加上前一项。//2/1+3/2+5/3+8/5+13/8…i++)//20项20层循环。//上一项的分子是下一项的分母。//先将m的值赋给k保存起来。
2023-03-08 15:02:59
568
原创 交换两个字符串中的值 strcpy()也可以
char *strcpy(char *st1,char *str2) :把str1所指的字符串复制到str2。方法二:使用string.h库函数中的strcpy()函数交换两个字符串的值。方法一:自定义函数交换两个字符串的值。
2023-03-07 17:47:20
1546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人