1本程序在vc++6.0编译通过并能正常运行。
2主界面程序已经尽量做到操作简便了,用户只需要根据提示一步步进行操作就行了。
六思考和总结:这个课程设计的各个基本操作大部分都在我的综合性实验中实现了,所以做这个主要攻克插入和删除这两个算法!其中插入在书本上已经有了,其中的右平衡算法虽然没有给出,但通过给出的左平衡算法很容易就可以写出右平衡算法。
所以最终的点就在于删除算法的实现!做的过程中对插入算法进行了非常非常多次的尝试!花了非常多的时间,这其中很多时候是在对程序进行单步调试,运用了VC6。
0的众多良好工具,也学到了很多它的许多好的调试手段。
其中删除算法中最难想到的一点是:在用叶子结点代替要删除的非叶子结点后,应该递归的运用删除算法去删除叶子结点!这就是整个算法的核心,其中很强烈得体会到的递归的强大,递归的最高境界(我暂时能看到的境界)!其它的都没什么了。
选做的那两个算法很容易实现的:1合并两棵平衡二叉排序树:只需遍历其中的一棵,将它的每一个元素插入到另一棵即可。
2拆分两棵平衡二叉排序树:只需以根结点为中心,左子树独立为一棵,右子树独立为一棵,最后将根插入到左子树或右子树即可。
BSTreeEmpty(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:若T为空平衡二叉排序树,则返回TRUE,否则FALSE.BSTreeDepth(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:返回T的深度。
LeafNum(BSTreeT)求叶子结点数,非递归中序遍历NodeNum(BSTreeT)求结点数,非递归中序遍历DestoryBSTree(BSTree*T)后序遍历销毁平衡二叉排序树TR_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作右旋处理,处理之后p指向新的树根结点即旋转处理之前的左子树的根结点L_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作左旋处理,处理之后p指向新的树根结点,即旋转处理之前的右子树的根结点LeftBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作左平衡旋转处理,本算法结束时,指针T指向新的根结点RightBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作右平衡旋转处理,本算法结束时,指针T指向新的根结点Insert_AVL(BSTree*T,TElemTypee,int*taller)若在平衡的二叉排序树T中不存在和e有相同的关键字的结点,则插入一个数据元素为e的新结点,并返回OK,否则返回ERROR.若因插入而使二叉排序树失去平衡,则作平衡旋转处理布尔变量taller反映T长高与否InOrderTraverse(BSTreeT)递归中序遍历输出平衡二叉排序树SearchBST(BSTreeT,TElemTypee,BSTree*f,BSTree*p)在根指针T所指的平衡二叉排序树中递归的查找其元素值等于e的数据元素,若查找成功,则指针p指向该数据元素结点,并返回TRUE,否则指针p指向查找路径上访问的最后一个结点并返回FALSE,指针f指向T的双亲,其初始调用值为NULLDelete_AVL(BSTree*T,TElemTypee,int*shorter)在平衡二叉排序树中删除元素值为e的结点,成功返回OK,失败返回ERRORPrintBSTree_GList(BSTreeT)以广义表形式打印出来PrintBSTree_AoList(BSTreeT,intlength)以凹入表形式打印,length初始值为0Combine_Two_AVL(BSTree*T1,BSTreeT2)合并两棵平衡二叉排序树Split_AVL(BSTreeT,BSTree*T1,BSTree*T2)拆分两棵平衡二叉树}(2)存储结构的定义:typedefstructBSTNode{ TElemTypedata; intbf;//结点的平衡因子 structBSTNode*lchild,*rchild;//左.右孩子指针}BSTNode,*BSTree;
1
TR-SDTN:TrustBasedEfficientandScalableRoutinginHostileSocialDTNs
2024/2/20 3:01:19 1.52MB 研究论文
1
rar包中包含tr069协议英文原版和中文翻译版,都是pdf文件
2024/2/17 14:49:54 1.22MB TR-069 CWMP TR069
1
在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。
请设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。
你们可以通过创建一些UNIX/LINUXshell脚本文件来满足以上需求。
  可以用任意一个文本编辑器打开passwd文件,该文件里包含用冒号分隔开的字段组成的记录,如下所示:  root:x:0:0:root:/root:/bin/bash  zxj:x:500:500:zxj303:/home/zxj:/bin/bash  .  .  .  在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。
在不同任务的中,这些操作能自动实现以下功能:在屏幕上显示当前所有用户的记录在屏幕上显示当前所有用户(经过格式化和排序的)的记录只在屏幕上显示用户名和用户ID只在屏幕上显示(经过格式化和排序的)用户名和用户ID查询并显示特定用户的记录往passwd文件里增加新的用户记录从passwd文件里删除某个用户记录  你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。
对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在你的主脚本menu文件中调用这些脚本文件。
  可能你还需要查询一些Unix/Linux命令,比如awk,、sort、tr、cut、paste、sed、grep;
你也可能还需要查询其他的Unix/Linux命令。
  建议你在主目录下建立一个以xxxxxx(xxxxxx为学号)命名的目录,并且在本次作业中使用它作为工作目录。
主脚本文件中的菜单  在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。
用户信息主菜单打印当前所有记录打印当前所有记录(格式化后的)打印用户名和用户ID打印(格式化了的)用户名和用户ID查询特定记录增加新记录删除记录Q——退出你的选择是:(等待用户输入)  当用户做了选择且所选的操作完成之后,应再次显示主菜单以供用户做下一步选择。
你必须用while循环和case条件语句配合来完成此操作。
另外在显示主菜单前必须先清除用户屏幕。
在以下所有步骤中,当显示主菜单前都需要先清屏。
  在menu脚本文件的前面部分你首先要定义三个变量,这三个变量分别存放passwd、add、delete文件的文件名,并且能在所有涉及到passwd、add、delete文件的语句中使用他们。
比如,可以定义成:          record_file=passwd  在所有访问passwd文件的语句中,只要使用$record_file即可。
这样做的一个优点就是,如果以后你需要重新命名记录或者需要在不同的记录文件中使用你的脚本的话,你只需要修改以上一个语句而不须在所有有关的记录文件里逐一修改语句。
如下定义另外两个变量:  add_file=add  delete_file=delete  定义以上变量之后,你必须核对menu脚本文件,看看所需的文件(passwd、add、delete)是否准确存放在当前目录下。
如果其中任何一个不存在,你的脚本menu文件就必须显示以下信息,然后退出:  RequiredfiletheMissingFiledoesnotexist.(所需文件不存在)  比如,如果passwd文件不存在,就显示“Requiredfilepasswddoesnotexist.(所需文件记录不存在)”然后退出。
  在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就有信息提示“无效的代码,请按回车键继续``````”(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。
等用户按了回车键之后,再次显示主菜单供用户做其他选择。
可以允许用户使用Q或q退出。
  在以上等待用户做出选择的菜单中,如果用户简单地按了回车键(而不是输代码)的话,就会出现信息“Selectionnotentered.PressEntertocontinue…"(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。
等用户按了回车键之后,再次显示主菜单供用户做其他选择。
  当用户选择了第一项——打印当前所有用户记录  以下是当用户在主菜单中选择第一个选项后,menu脚本文件
2023/11/27 18:53:43 211KB Linux大作业
1
tr_V8R13C00_proj_FSD(demo_api和demo_xxx).rar
2023/11/20 12:07:06 23.42MB c++
1
目前网络关于分数阶傅里叶变换可靠的代码来源主要有一下几个:(1)来源一:M.A.Kutay.fracF:FastcomputationofthefractionalFouriertransform,1996.www.ee.bilkent.edu.tr/~haldun/fracF.m.(2)来源二:J.O’Neill.DiscreteTFDs:acollectionofmatlabfilesfortime-frequencyanalysis,1999.ftp.mathworks.com/pub/contrib/v5/signal/DiscreteTFDs/.(3)来源三:AdhemarBultheelandH´ectorE.Mart´ınezSulbaran.frft:ComputationoftheFractionalFourierTransform,2004.www.cs.kuleuven.ac.be/~nalag/research/software/FRFT/.(4)来源四:A.Bultheel.frft2:Atwo-phaseimplementationofthefractionalFouriertransform,2011.这里比较推荐的是来源三及其网站。
2004年的这篇文章《ComputationoftheFractionalFourierTransform》对前面的(1)和(2)进行了详细的对比,分析了两个程序的优劣并进行了改进,(3)的代码较为简洁也比较实用,其对应网站上还有很多相关的代码。
2023/10/26 9:14:57 9KB FRFT MATLAB 分数阶傅里叶
1
freeICTCLAS中科院中文分词(拼音中文输入法设计和源代码).zipICTCLAS源码结构Codes│ICTCLAS_WIN.cppWindows界面的程序│ICTCLAS_Win.dsp│ICTCLAS_WIN.dsw│ICTCLAS_WIN.h│ICTCLAS_Win.exe可执行程序│ICTCLAS_WinDlg.cpp│ICTCLAS_WinDlg.h│resource.h│StdAfx.cpp│StdAfx.h│log.txt日志│ICTCLAS_Win.rcWindows界面的资源│├─Utility共用函数模块│ContextStat.cpp│ContextStat.h│Dictionary.cpp│Dictionary.h│Utility.h│Utility.cpp│├─Unknown未登录词识别模块│UnknowWord.cpp│UnknowWord.h│├─TagHMM标注模块│Span.cpp│Span.h│├─Segment词语切分模块│DynamicArray.h│NShortPath.cpp│NShortPath.h│Queue.cpp│Queue.h│SegGraph.cpp│Segment.cpp│Segment.h│DynamicArray.cpp│SegGraph.h│├─Result结果生成模块│Result.cpp│Result.h│├─Data概率数据文件│lexical.ctx│BigramDict.dct│coreDict.dct│nr.dct│nr.ctx│ns.ctx│ns.dct│tr.dct│tr.ctx│└─resWindows界面的资源
1
自己编写的VB程序,请大家多指教!(赚一点积分嘿嘿……)部分代码如下:PrivateSubCommand1_Click()k=1.4D=Val(Text1.Text)S=Val(Text2.Text)Ne=Val(Text3.Text)nh=Val(Text4.Text)ε=Val(Text5.Text)L=Val(Text6.Text)R=Val(Text7.Text)ge=Val(Text8.Text)P0=Val(Text13.Text)T0=Val(Text12.Text)gc=Val(Text9.Text)gh=Val(Text10.Text)go=Val(Text11.Text)mt=Val(Text14.Text)i=Val(Text15.Text)ι=Val(Text16.Text)α=Val(Text38.Text)ξz=Val(Text40.Text)φi=Val(Text41.Text)ηm=Val(Text42.Text)n=Val(Text45.Text)Vh=(S*0.01)*3.14*(D*0.01)^2/4'排气过程Pr=1+0.3*n/nhTr=850+350*n/nhText17.Text=Val(Pr)Text18.Text=Val(Tr)'进气过程δ=0.5ΔT=ΔTh*(110-0.0125*n)/(110-0.0125*nh)Pa=Int(10^3*(P0*(1-((10*n^2/520/10^6)/10.6^2/0.75^2)*(ε-δ)^2/(ε-1)^2)^(k/(k-1))))/10^3γ=Int(10^3*(T0+ΔT)*Pr/Tr/(ε*Pa-Pr))/10^3Text44.Text=γText19.Text=PaTa=(T0+ΔT+γ*Tr)/(1+γ)ηv=ε*Pa*T0/(ε-1)/P0/Ta/(1+γ)Text20.Text=Val(Int(1000*Ta)/1000)Text21.Text=Val(Int(1000*ηv)/1000)'压缩过程n1=1.46-0.05*Nn/nPc=Pa*ε^n1Tc=Ta*ε^(n1-1)Text22.Text=Val(Int(1000*Pc)/1000)Text23.Text=Val(Int(1000*Tc)/1000)'燃烧过程L0=(gc/12+gh/4-go/32)/0.21M1=α*L0+1/mtCv1=(4.815+0.415*10^(-3)*Tc)*4.1868M2=0.79*α*L0+gh/2+gc/12A=(3.7+3.3*α)*10^(-4)*4.1868B=(4.4+0.62*α)*4.1868μ0=M2/M1μ=(μ0+γ)
2023/6/2 14:40:23 9KB VB 发动机 汽油机 柴油机
1
CommandLineFundamentals:LearntousetheUnixcommand-linetoolsandBashshellscriptingBy作者:VivekNISBN-10书号:178980776XISBN-13书号:9781789807769出版日期:2018-12-24pages页数:(314)Themostbasicinterfacetoacomputer—thecommandline—remainsthemostflexibleandpowerfulwayofprocessingdataandperformingandautomatingvariousday-to-daytasks.CommandLineFundamentalsbeginsbyexploringthebasics,andthenfocusesonthemostcommontool,theBashshell(whichisstandardonallLinuxandiOSsystems).Asyoumakeyourwaythroughthebook,you’llexplorethetraditionalUnixcommand-lineprogramsasimplementedbytheGNUproject.You’llalsolearntouseredirectionandpipelinestoassembletheseprogramstosolvecomplexproblems.Bytheendofthisbook,you’llhaveexploredthebasicsofshellscripting,allowingyoutoeasilyandquicklyautomatetasks.ContentsWhatYouWillLearnUsetheBashshelltoruncommandsUtilizebasicUnixutilitiessuchascat,tr,sort,anduniqExploreshellwildcardstomanagegroupsoffilesApplyusefulkeyboardshortcutsinshellEmployredirectionandpipestoprocessdataWritebothbasicandadvancedshellscriptstoautomatetasksAuthorsVivekNVivekNisaself-taughtprogrammerwhohasbeenprogrammingforalmost30yearsnow,sincetheageof8,withexperienceinX86Assembler,C,Delphi,Python,JavaScript,andC++.HehasbeenworkingwiththecommandlinesincethedaysofDOS4.01andiskeentointroducethenewgenerationofcomputeruserstothepoweritholdstomaketheirlifeeasier.
2023/6/1 8:55:49 13.01MB iOS
1
LK_HS(matlabopencv源代码及论文及数据集)MIT-CSAIL-TR-2010-024SIFTFlowDenseCorrespondenceacrossScenesandItsApplicationsBeyondPixelsExploringNewRepresentationsandpplicationsforMotionAnalysis搜罗matlab及OpenCV3.0源代码,对于视频中目的举行跟踪(自己已经调试经由)
2023/4/16 18:42:15 306.78MB HS光流 LK光流 OpenCV 稠密光流
1
共 33 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡