目的:勾勒数据结构课程的轮廓,了解本课程的目的、性质和主要内容。
内容:数据结构和算法概念,算法设计与分析。
要求:理解数据结构基本概念,理解抽象数据类型概念;
熟悉算法设计和分析方法。
重点:数据的逻辑结构和存储结构概念。
难点:抽象数据类型,链式存储结构,算法分析方法。
实验:简单算法设计,回顾Java语言的基本语法和面向对象基本概念。
2024/8/31 11:41:33 7.48MB 数据结构
1
学生信息管理系统项目数据库设计说明书第一部分:课程设计内容2第一章绪论21课题简介22设计目的33设计内容3第二章需求分析41功能需求41.1学生(Student)用户41.2教师(Teacher)用户41.3管理员(Administrator)用户42性能需求5第三章概念结构设计61局部E-R图62全局E-R图9第四章逻辑结构设计101关系模式102数据库结构的详细设计11第五章物理结构设计151建立索引152存储结构153数据库的建立16第三部分分析与总结221数据库分析222课题总结223、项目展望224、心得与体会23参考文献23
1
实验内容1.二分查找又称为折半查找,它要求要查找的顺序表必须是有序表,即表中结点按关键字有序.并且要用顺序存储结构。
基本思想是:首先将给定值key与表中中间位置记录的关键字相比较,若二者相等,则查找成功,否则根据比较的结果确定下次查找的范围是在中间记录的前半部分还是后半部分,然后在新的查找范围内进行同样的查找,如此重复下去,直到在表中找到关键字与给定值相等的记录,或者确定表中没有这样的记录。
编写程序构造一个有序表La,从键盘接收一个关键字key,用二分查找法在La中查找key,若找到则提示查找成功并输出key所在的位置,否则提示没有找到信息。
2.编写程序实现Hash表的建立、删除、插入以及查找操作。
程序应包含的主要功能函数有:Hash():计算哈希地址InitialHash():初始化哈希表SearchHash():在哈希表中查找关键字InsertHash():向哈希表中插入关键字DeleteHash():删除哈希表中某一关键字PrintHash():打印输出哈希表
2024/8/23 7:52:55 43KB 二分查找 hash 数据结构 代码
1
(产品产品包:航空订票系统.rar开发说明书:航空订票系统开发说明书产品源代码名:航空订票系统.cpp开发文档:开发成员名单.xls帮助文档:帮助.xls)一.设计题目航空客运订票的业务活动包括:查询航线、客票预订和办理退票等运订票系统,以使上述业务可以借助计算机来完成。
二.需求分析(一) 功能描述(1)每条航线所涉及的够息有:终点站名、航班号、星期几、乘员定额、众票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票层);
(2)作为示意系统,全部数据可以只放在内存中;
(3)系统能实现的操作和功能如下:①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额。
②承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续.输出座位号;
若已满员或余票额少于订票额,则需重新询问客户要求。
若需要,可登记排队候补;
③承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求.则为他力、理订票手续,否则依次询问其它排队候补的客户。
(二) 实现提示两个客户名单可分别由线性表和队列实现。
为查找方便.已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。
由于预约人数无法预计,队列也应以链表作存储结构。
整个系统需汇总各条航线约情况登录在一张线性表上,由于航线基本不变.可采用顺序存储结构,并按航班有序或按终点站名有序。
每条航线是这张表上的—个记录,包含上述8个域,其中乘员名单域为指向乘员名单链表的头指针,等侯替补的客户名单域为分别指向队头和队尾的指针。
(三) 功能结构图(四) 模块划分1) 航班查询根据旅客提出的终点站名输出航班号、星期几飞行,最近一天航班的日期以及余票额情况。
2) 用户订票根据客户提出的要求查询该航班票额情况,若尚有余票,则为客户办理订票手续.输出座位号;
若已满员或余票额少于订票额,则需重新询问客户要求。
若需要,可登记排队候补。
3) 用户退票根据客户提出的要求查询该客户的订票情况,若情况属实则可确认退票。
4) 开发简介表明产品名及开发人员情况。





2024/8/22 17:07:12 1.97MB C C++
1
设二叉排序树的二叉链表存储结构的类型定义如下:typedefstructnode{intdata;//用整数表示一个结点的名structnode*LChild,*RChild;//左右指针域}BSTNode,*BSTree;设计算法并编写程序求解以下几个问题。
8121410731562415119131613(1)键盘输入一个元素序列创建一棵二叉排序树,输出该二叉排序树的中序遍历序列;
例如,若输入45,24,55,12,37,53,60,23,40,70则创建的二叉排序树为:输出结果为:12232437404553556070(2)在(1)中所得的二叉排序树中插入一个值为58的结点,再输出它的中序遍历序列,输出结果为:1223243740455355586070(3)在(1)中所得的二叉排序树中删除值为45的结点,再输出它的中序遍历序列,输出结果为:12232437405355586070(4)利用(1)中所得的二叉排序树的所有叶子结点构造一个带头结点的单链表L。
要求不能破坏这棵二叉排序树。
所得的单链表L如下。
输出该链表各结点的值,输出结果为:23405370(5)设计算法将(1)中所得的二叉排序树的左右子树进行交换,由于二叉树是一种递归定义,所以子树的左右两棵子树也要相交换,依此类推。
最后输出所得到的二叉树的中序遍历序列。
例如,经过上述操作后,(1)中所得的二叉排序树变为如下形式。
输出该二叉树的中序序列,结果为:70605553454037242312(6)设计算法统计并输出(1)中所得的二叉排序树中只有一个孩子结点的结点个数。
输出结果为:3(7)在(1)中所得的二叉排序树中,设计算法并编写程序输出结点40的所有祖先结点。
输出结果为:452437
2024/8/12 15:36:41 39KB 数据结构 C C++
1
参考资料:《数据结构》(C语言版)严蔚敏&&吴伟民&&米宁著要求选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作。
有个亮点是利用字符在dos界面显示二叉树的结构形态。
里面包含了完整的源程序和实验报告文档。
实验报告包含了完整的步骤包括:一.抽象数据类型二叉树的定义二.存储结构定义(包括顺序存储和二叉链表)及各基本操作的实现三.测试方案。
包括详细的测试函数四.测试结果。
对所有操作的测试过程中二叉树的变化截图。
五.二叉树各基本操作时间复杂度与存储结构特点分析及对算法的改进设想。
六.实验总结和体会实现的基本操作如下:InitBiTree(&T)DestroyBiTree(&T)CreateBiTree(&T)ClearBiTree(&T)BiTreeEmpty(T)BiTreeDepth(T)Root(T)Value(T,e)Assign(T,&e,value)Parent(T,e)LeftChild(T,e)RightChild(T,e)LeftSibling(T,e)RightSibling(T,e)InsertChild(T,p,LR,c)DeleteChild(T,p,LR)PreOrderTraverse(T,Visit())InOrderTraverse(T,Visit())PostOrderTraverse(T,Visit())LevelOrderTraverse(T,Visit())下载清单:Base.h//全局常量、公共变量、公共函数等BiTree.h//二叉链表二叉树实现BiTree_Main.cpp//二叉链表二叉树测试程序SqBiTree.h//顺序存储二叉树实现SqBiTree_Main.cpp//顺序存储二叉树测试程序抽象数据类型实现-二叉树-实验报告.doc
1
根据问题提供问题的解决方案,实现棋盘的绘制和棋子的内摆放功能。
而可以选择的存储结构为线性存储结构,逻辑结构为图形结构。
实现主窗口的棋子摆放规则,可以选用线性存储结构和图形结构构造一个新的数据结构,定义在其上的功能为根据循环递归法改变中皇后的位置,并将其传递给整个棋盘的对象,使其按照要求实现棋子的摆放,直到出现正确的放置方法。
2024/7/23 5:14:49 324KB 数据结构 八皇后问题
1
最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。
若有不当之处,烦请批评指正。
1.MySQL体系结构和存储引擎2.InnoDB存储引擎2.1InnoDB体系结构2.2Checkpoint技术2.3MasterThread工作方式2.4InnoDB关键特性3.文件3.1参数文件3.2日志文件3.3套接字文件3.4pid文件3.5表结构定义文件3.6InnoDB存储引擎文件4.表4.1索引组织表4.2InnoDB逻辑存储结构4.3行记录格式4.4InnoDB数据页结构5.索引与算法5.1概述5.2数据结构与算法5.3B+树索引5.4B+树索引的分裂5.5Cardinality值5.6全文索引6.锁-实现事务的隔离性6.1什么是锁6.2lock和latch6.3InnoDB存储引擎中的锁6.4锁的算法6.5锁问题6.6阻塞6.7死锁6.8锁升级7.事务7.1概述7.2事务的实现7.3事务控制语句7.4隐式提交的SQL语句7.5不好的事务习惯8备份与恢复8.1备份与恢复概述8.2冷备8.3逻辑备份8.4二进制日志备份与恢复8.5热备8.6快照备份8.7复制
2024/7/8 3:47:49 3.1MB MySQL InnoDB
1
这是用邻接链表作存储结构的图类源代码,下面是图类的声明部分:structArcNode//弧节点结构{intadjvex;ArcNode*nextarc;};structVexNode//顶点结构{intvexdata;ArcNode*firstarc;};//邻接链表图类的声明。
classGraph{private:staticstringstr;bool*visited;//是否访问标志VexNode*adjlist;//邻接链表数组intn;//已有顶点个数intmax;//可容纳的最大顶点个数voiddfs0(intv0,voidvisit(int&v));voidbfs0(intv0,voidvisit(int&v));public:Graph(intl);//建立一个最大顶点数为l的空图Graph(VexNodeadjl[],intl);//构造一个由adj1表示的顶点个数为l的邻接链表对象Graph(intvex[],intarc[],intn);//以vex[]为顶点集,arc[]表示的邻接矩阵建立图voidinstVex(intdata);//插入顶点voidinstArc(intv1,intv2);//插入边stringdfs(intv0,voidvisit(int&v));//深度优先遍历stringbfs(intv0,voidvisit(int&v));//广度优先遍历staticvoidfunc1(int&v);//遍历时执行的函数staticvoidfunc2(int&v);//遍历时执行的函数staticstringinttostr(intv);};
2024/6/29 17:13:18 13KB 邻接链表
1
随着互联网飞速发展,企业业务种类会越来越多,业务数据量会越来越大,当发展到一定规模时,传统的数据存储结构逐渐无法满足企业需求,实时数据仓库就变成了一个必要的基础服务。
以维表Join为例,数据在业务数据源中以范式表的形式存储,在分析时需要做大量的Join操作,降低性能。
如果在数据清洗导入过程中就能流式的完成Join,那么分析时就无需再次Join,从而提升查询性能。
利用实时数仓,企业可以实现实时OLAP分析、实时数据看板、实时业务监控、实时数据接口服务等用途。
但想到实时数仓,很多人的第一印象就是架构复杂,难以操作与维护。
而得益于新版Flink对SQL的支持,以及TiDBHTAP的特性,我们探索了一
1
共 125 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡