C语言
文章平均质量分 68
NUAA&XMU---xd
南京航空航天大学毕业本科生,厦门大学在读博士生
展开
-
家谱程序用到的txt文件格式
不知道为啥,上传不上来,就截个图了,大家按照类似数据格式仿照就行。原创 2024-06-17 23:39:30 · 273 阅读 · 1 评论 -
南航数据结构上机作业6---树的常用操作
一、调试成功程序及说明1、题目:1、利用递归算法输出根节点到所有叶子节点的路径;算法思想:用一个数组path[N]来存储他的祖先,即根节点到该节点的路径,然后调用allpath()函数,判断该节点是不是叶子节点,是的话就输出,否则继续向下(孩子)走。运行结果:结果分析:运行正确。附源程序void allpath(TR *T,char *path,int m){ TR *p; int i; if(T) { if(!(T->fir)) //该节点为叶子,那么就输出当原创 2020-07-04 10:46:01 · 1325 阅读 · 0 评论 -
南航数据结构上机作业5---树的一些操作,采用先序,中序,后序,层次来写
一、调试成功程序及说明1、题目:根据二叉树的中序、先序序列创建二叉树,并返回根节点指针;算法思想:先根据先序序列找到当前子树的根,然后再在中序序列中寻找这个根,那么左边的就是左分支,右边的就是右分支(当然左不一定是到最左,可能会遇到之前用过的根节点,右边同理)。然后递归构造就行了,毕竟树的定义就是递归的。运行结果:结果分析:结果正确,和老师给的该题二叉树的图像相吻合。附源程序BT *createtree(char *in,char *pre,int k) //根据二叉树的中序、先序原创 2020-07-04 10:42:13 · 818 阅读 · 0 评论 -
南航数据结构上机作业4---碰撞小球问题,稀疏矩阵快速转置,稀疏矩阵求和
一、调试成功程序及说明1、碰撞的小球题目:1、 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒;2、 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小;3、 当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。4、 现在,告诉你线段的长度L,小球数量n,以及n个小球的初始位置,请原创 2020-07-04 10:34:18 · 1049 阅读 · 0 评论 -
南航数据结构上机作业3--模拟网页点击,汉诺塔,迷宫
1、题目:问题描述:在某操作系统中打开了 N 个窗口,每个窗口都是一个矩形区域。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。现在我们希望你写一个程序模拟点击窗口的过程算法思想:由于在某一次点开的网页所在的层数我们是不知道的,因此这道题并不方便采用栈或者队列,由于这里涉及到了较原创 2020-07-04 10:28:50 · 1621 阅读 · 2 评论 -
南航数据结构上机作业2---链表求交,拆分链表
一、调试成功程序及说明1、题目:两个有序单向链表A,B(升序有序,均无重复元素)。请设计高效计算法求取两个链表的交集元素,A=common(A,B),要求处理后链表A降序有序,并且没有重复元素,链表B不变。请分析时间复杂度,要求空间复杂度为O©算法思想:首先,我们用指针pa1指向头节点A(这很重要,这决定了我们后面的插入方式),用pa指向链表A,pb指向链表B,然后在pa,pb不等于NULL(即)我们开始比较pa->data和pb->data。如果pa->data小于pb->原创 2020-07-04 10:23:03 · 384 阅读 · 0 评论 -
南航数据结构上机作业1---数组排序去重,三个数组求交,统计相邻数对
一、调试成功程序及说明1、题目:数组A,前m个元素有序(无重复元素),后n个元素有序(无重复元素),整体无序,请设计算法将数组A调整为整体有序且没有重复元素,并分析时间复杂度,要求空间复杂度为O©算法思想:我用计数器i来遍历数组A的前m个元素,用计数器j来遍历数组A的后n个元素,来判断A[i]和A[j]的大小关系,从而找出A[j]插入的位置,当然由于数组A的前m个数字和后n个数字都是有顺序的,因此我们只需要遍历一次就行了,不需要反复遍历,因此,我们考虑最坏的情况(即需要插入时,交数字最多的情况),原创 2020-07-04 10:21:08 · 669 阅读 · 0 评论 -
C语言课设代码补充---图书馆书籍管理
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>typedef struct //定义数据类型{ char ISBN[10]; //书号 char book[30]; //书名 char author[20]; //作者 int edition; //版本号 char press[50];原创 2020-06-23 12:22:19 · 1368 阅读 · 5 评论 -
课设总结
总体完成情况:实现了题目里要求的所有功能,并且努力实现了部分未要求,或者加分项的功能。行数:【必做】计算24点:207【必做】表达式计算:263【必做】huffman编码:357【必做】最小生成树:321【必做】行车路线:176+95【必做】平衡二叉树操作的演示:581【必做】排序算法比较:447【选做】家谱管理系统:1781【选做】公交车路线提示:997【选做】迷宫问题:148【选做】关键路径问题:267共5642行心得体会7道必修题+4道30分选做题全部完成,报告201原创 2020-06-22 12:12:38 · 1702 阅读 · 0 评论 -
数据结构课程设计(十一)---关键路径问题
1、任务简述:设计实现AOE网的关键活动与关键路径问题要求:(1)自行建立图的数据文件,以邻接表或者邻接矩阵表示图皆可,显示输出原图(按照邻接表的样式);(2)计算出各个事件的最早发生时间与最迟发生时间,并显示输出;(3)输出所有的关键路径。2、算法描述:数据结构:typedef struct arc{int index; //编号float weight; //权重struct arc *next; //指向下一个节点}AR;typedef struct MyGraph{i原创 2020-06-22 12:11:35 · 6220 阅读 · 23 评论 -
数据结构课程设计(十)---迷宫问题
1、任务简述:设计非递归算法,根据入口和出口位置将给定迷宫中的全部可行路线输出,并标记出其中的最短路径;int mg[10][10]={ {1,1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,0,1,0,1}, {1,0,0,1,0,0,0,1,0,1}, {1,0,0,0,0,1,1,0,0,1}, {1,0,1,1,1,0,0,0,0,1}, {1,0,0,0,1,0,0,0,0,1}, {1,0,1,0,0,0,1,0,0,1}, {1,0,1,1,1,0,1,1原创 2020-06-22 12:00:46 · 6302 阅读 · 10 评论 -
数据结构课程设计(九)---公交线路提示
1、任务简述:上网下载真实南京公交线路图,建立南京主要公交线路图的存储结构要求:(1)输入任意两站点,给出转车次数最少的乘车路线。(2)输入任意两站点,给出经过站点最少的乘车路线。(3)加分项:可以输出全部符合要求的乘车路线2、算法描述:站与站之间的图直接读取文件即可得到。而最小换乘需要一张车与车之间的图。在原本的站与站的图里,我在邻接表里存储了车的信息(可以知道每一条弧是哪一路车上的),可以方便后来构造车与车的图最短路径算法:未使用dijkstra算法而通过改进广度优先搜索来实现最短路径原创 2020-06-22 11:55:58 · 6788 阅读 · 19 评论 -
数据结构课程设计(八)---家谱管理系统(十几个功能)
1、任务简述:实现具有下列功能的家谱管理系统。要求:(1)输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。(2)实现数据的文件存储和读取。(3)以图形方式显示家谱。(4)显示第n 代所有人的信息。(5)按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。(6)按照出生日期查询成员名单。(7)输入两人姓名,确定其关系。(8)某成员添加孩子。(9)删除某成员(若其还有后代原创 2020-06-22 11:51:26 · 28861 阅读 · 141 评论 -
数据结构课程设计(七)---排序算法比较
1、任务简述:利用随机函数产生N个随机整数(N = 500,1000,1500,2000,2500,…,30000),利用直接插入排序、折半插入排序、希尔排序(对于不同数量的数据,生成不同的增量序列)、起泡排序、快速排序、选择排序、堆排序、两路归并排序(非递归)8种方法进行排序,统计每一种排序所需要的比较次数以及移动次数。要求:(1) 原始数据随机生成。(2) 对于不同的数据规模,显示每种排序所需的比较次数以及移动次数。(3) 分析每一种排序算法的特点2、算法描述:①直接插入排序:首先来解释原创 2020-06-22 11:43:04 · 14149 阅读 · 9 评论 -
数据结构课程设计(五)---行车路线
1、任务简述:小明和小芳出去乡村玩,小明负责开车,小芳来导航。小芳将可能的道路分为大道和小道。大道比较好走,每走1公里小明会增加1的疲劳度。小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公里小明会增加s2的疲劳度。例如:有5个路口,1号路口到2号路口为小道,2号路口到3号路口为小道,3号路口到4号路口为大道,4号路口到5号路口为小道,相邻路口之间的距离都是2公里。如果小明从1号路口到5号路口,则总疲劳值为(2+2)2+2+22=16+2+4=22。现在小芳拿到了地图,请帮助她规划一个开原创 2020-06-22 11:31:19 · 2943 阅读 · 1 评论 -
数据结构课程设计(四)---最小生成树
1、任务简述:利用普利姆算法和克鲁斯卡尔算法实现最小生成树问题要求:(1).自行建立图的数据文件,第一行是顶点个数,然后依次是顶点名,接下来是边,用float表示边的权值;(2).以邻接表或者邻接矩阵表示图皆可,显示输出原图(按照邻接表的样式);(3).分别利用prim和kruscal算法实现最小生成树(最小生成树用邻接表或邻接矩阵表示均可)。(4).输出最小生成树(按照邻接表的样式);(5).比较这两种算法2、算法描述:数据结构:typedef struct arc //邻接表的节点原创 2020-06-22 11:28:06 · 6559 阅读 · 12 评论 -
数据结构课程设计(三)---Huffman编码
1、任务简述:对一篇英文文章,统计其中26个小写字母出现的频次,对这些小写字母进行Huffman编码。要求:(1)从文件读入原始文本文件,并在屏幕上显示出文本;(2)按照字母顺序输出字母的出现次数,以及相应的编码。(3)同时具备解码功能。即输入一串二进制编码,能够还原出文本2、算法描述:数据结构:一颗有n个叶子(n个字符得文章)结点的Huffman树共有2n-1个结点,可以存储在一个大小为2n-1的一维数组中。译码需要从上往下走,编码需要从下往上走,所以对于每个节点都需要知道其双亲,同时也原创 2020-06-22 11:25:21 · 2405 阅读 · 7 评论 -
数据结构课程设计(二)---算术表达式求值
1、任务简述:一个算术表达式是由操作数(operand)、运算符(operator)和括号组成的。假设操作数均是正实数,运算符只含加减乘除四种运算符。编程利用“算符优先法”求算术表达式的值。要求:(1) 从键盘或文件读入一个合法的算术表达式,输出相应的后缀表达式。后缀表达式中,数据与数据之间加分隔符;(2) 输出正确的计算结果,保留两位小数点;(3) 考虑算法的健壮性,当表达式错误时,要给出错误提示(4) 可以连续输入,即输入完一个表达式,转换和计算完成后可以提示用户继续输入表达式,直到用户输入原创 2020-06-22 11:22:30 · 18361 阅读 · 13 评论 -
数据结构课程设计(一)---24点
一、计算24点1、任务简述:一副扑克牌的每张牌表示一个数(J、Q、K分别表示11、12、13,两个司令不用)。任取4张牌,即得到1-13的数,请添加运算符(规定为加、减、乘、除四种)使之成为运算式。每个数只能参与一次运算,4个数顺序可以任意组合,4个运算符任意取3个且可以重复取。运算遵从一定有限级别,可加括号控制,最终使运算结果为24.请输出一种解决方案的表达式,用括号表示运算优先。如果没有解决方案,则输出-1表示无解。要求:(1)输入说明:输入采用随机生成4个整数,每个整数取值范围是[1, 13]原创 2020-06-22 11:19:11 · 3379 阅读 · 4 评论 -
C语言课设---图书管理系统
目 录一、程序主要功能二、程序设计思路三、程序流程图四、数据结构五、程序代码六、程序运行结果七、新功能的设计说明——Correct八、两个主要算法说明一、程序主要功能图书管理系统要求实现图书管理的基本功能,包括图书的录入、删除、查找和导入/导出等。图书的属性包括书号、书名、第一作者、版次、出版年等信息。功能要求:1.创建:创建图书管理系统,用逐条输入的方式;2.显示:分屏显示图书管理系统中的所有记录;3.插入:向图书管理系统中插入一条记录;4.删除:删除一条已经存在的记录项;原创 2020-06-18 23:28:40 · 10787 阅读 · 1 评论