该职工工资管理系统是用C语言写的,其中包含大量的文件操作,通过相对路径访问。
它的基本结构是单链表,其中也包含大量的操作,包括链表的插人、删除、查询、销毁。
这个管理系统包含管理员登录和员工登录两个模块,两者的信息也存储在不同的文件中,这款软件虽然是用C语言写的,但是结构清晰,逻辑合理,可以说是对C语言重要知识的一个集成。
写这个管理系统也花我了好几周的时间,希望对大家理解C语言有所协助。
2019/7/11 18:35:25 3.19MB 职工管理系统
1
1.若干城市的信息存入一个带头结点的单链表,结点中的城市信息包括城市名、城市的位置坐标。
要求:(1)给定一个城市名,前往其位置坐标。
(2)给定一个位置坐标P和一个距离D,前往所有与P的距离小于等于D的城市。
2016/7/5 7:31:43 1KB 数据结构 耿国华 线性表 实习题
1
用单链表实现n阶乘计算,能够计算到2000的阶乘
2019/11/10 3:42:10 775B 计算大数(n>20)阶乘
1
108题中有部分题目重合,因此么有收录在压缩文件中。
华为机试├─001字符串最后一个单词长度│└─Source├─002计算字符个数│└─Source├─003明明的随机数│└─Source├─004字符串分隔│└─Source├─005进制转换│└─Source├─006质数因子│└─Source├─007取近似值│└─Source├─008合并表记录│└─Source├─009提取不重复的整数│└─Source├─010字符个数统计│└─Source├─011数字颠倒│└─Source├─012字符串反转│└─Source├─013句子逆序│└─Source├─014字典序排序│└─Source├─015求int型正整数在内存中存储是1的个数│└─Source├─016购物单│├─Debug│├─Source││└─Debug│├─Source-时间优先││└─Debug│└─Source-空间优先│├─Debug│└─Release├─017坐标移动├─018识别IP地址分类统计│└─Source│└─Debug├─019错误记录├─020密码验证合格程序├─021密码破解├─023删除字符串中出现次数最少字符│└─Source│└─Debug├─024合唱队│└─Source│├─Debug│└─Release├─025数据分类处理│└─Source│└─Debug├─026查找兄弟单词│└─Source│└─Debug├─027素数伴侣│└─Source│└─Debug├─028字符串合并处理│└─Source│└─Debug├─030密码截取(查找最长回文字符串)├─031蛇形矩阵│└─Source│└─Debug├─033判断IP能否属于同一子网│└─Source│└─Debug├─034称砝码│└─Source│└─Debug├─035学英语│└─Source│└─Debug├─036迷宫问题│└─Source│└─Debug├─037数独问题│└─Debug├─038名字漂亮度│└─Source│└─Debug├─039字符串截取│└─Source│└─Debug├─040单链表删除数据│└─Source│└─Debug├─041多线程│└─Source│├─Backup│├─Debug││└─041.tlog│└─Release│└─041.tlog├─042表达式计算│└─Source│└─Debug├─043计算字符串距离│└─Source│└─Debug├─044杨辉三角形变形├─046挑7├─047完全数│└─Debug├─048高精度加法├─049输出n个数中最小的k个│└─Debug├─050找出字符串只出现一次的字符│└─Debug├─051组成一个偶数最接近的2个质数│└─Debug├─052M个苹果放入N个盘子├─053查找整数二进制中1的个数├─054DNA子串├─055MP3光标位置│└─Source│└─Debug├─056查找2个字符串最大相同子串│└─Debug├─057配置文件恢复│└─Source│└─Debug├─05824点计算│└─Debug├─059成绩排序├─060矩阵相乘├─061矩阵乘法次数计算├─062字符串通配符│└─Debug├─066命令行解析│└─Source│└─Debug├─067最大相同子串长度│└─Debug├─068火车编号进站│└─Debug├─072数组合并├─074埃及分数│└─Source│└─Debug├─076密码截取│└─Sourc
2018/6/8 16:28:18 4.55MB 机试 在线编程 华为机试
1
Java完成单链表的增删改查以及选择、冒泡、反转排序等功能的完成!
2022/9/8 10:37:04 3KB Java 单链表 增删改查
1
这是C#版的数据结构与算法的代码实现,包括:顺序表,单链表,双链表;
顺序栈,链栈;
顺序队列,链队列;
顺序串;
用数组进行特殊矩阵的存储,稀疏矩阵的存储;
顺序存储二叉树,链式存储二叉树,哈夫曼树;
多重链表表示法存储树;
用邻接矩阵处理图的编程问题,用邻接表处理图的编程问题,图的遍历(深度优先,广度优先),Dijkstra最短路径算法;
冒泡排序,快速排序
2022/9/5 9:52:06 675KB 数据结构与算
1
用C++编的用的是用单链表结构做的通讯录管理课程计划,内附课程计划的实验报告!
1
设计并实现一个简单的学生成绩管理系统,学生成绩表信息包括学号、姓名、各科课程成绩(语文、数学、英语、政治)和总分。
用带头结点的单链表管理学生成绩表,每个学生的信息依次从键盘输入,并根据需要进行插入、删除、排序、输出等操作。
次要操作为:输入学生信息,按输入顺序建立一个带头结点的单链表,指导输入学号为0结束。
在单链表末尾追加一个学生的信息,并输出结果。
输入一个学生的姓名,在链表中进行查找,如果存在,显示该生的所有信息;
如果不存在,显示提示信息“查无此人”。
输入一个学生的学号,如果链表中存在该学生信息,则将其删除。
将学生成绩按总成绩从高到低排序,并输出结果。
明白switch函数的使用方法,和函数的套用规则。
学习哈夫曼树的基本定义和哈夫曼树的构造,还讲解了哈夫曼树的应用、哈夫曼编码和最短路径问题。
了解哈夫曼树的使用和特点。
1
LeetCodecpp最新中文题解.pdfLeetCodecpp最新中文题解.pdfLeetCodecpp最新中文题解.pdf目录3.4Addbinary615.1.5BinaryTreeLevelOr-3.5LongestPalindromicSubstring.62dertraversalil3.6RegularExpressionMatching665.1.6BinaryTreeZigzag3.7WildcardMatching67LevelOrdertraversal.963.8LongestCommonPrefix5.1.7RecoverBinarySearch3.9ValidNumber70Tree983.10Integertoroman725.1.8SameTree3.11RomantoInteger735.1.9SymmetricTree1003.12CountandSay745.1.10BalancedBinaryTree..1023.13Anagrams755.1.11FlattenBinaryTreeto3.14SimplifyPath76LinkedList1033.15LengthofLastWord775.1.12PopulatingNextRightPointersineachnodeii105第4章栈和队列7952二叉树的构建10641栈795.2.1ConstructBinaryTree4ValidParentheses79fromPreorderandIn4.1.2LongestvalidParenorderTraversa106theses805.2.2ConstructBinaryTree4.1.3LargestRectangleinfromInorderandposHistogram82torderTraversal1074.1.4Evaluatereversepol-53二叉查找树108ishnotation845.3.1UniqueBinarySearch4.2队列85Trees.1085.3.2UniqueBinarySearch第5章树86Treesli.1105.1二叉树的遍历865.3.3ValidateBinarySearch5.1.1BinaryTreePreorderTreeTraversal865.3.4ConvertSortedarrayto5.1.2BinaryTreeInorderBinarySearchTree...112Traversal885.3.5ConvertSortedListto5.1.3BinaryTreePostorderBinarySearchTree113Traversal9054二叉树的递归.1145.1.4BinaryTreeLevelOr5.4.1MinimumDepthofBidertraversal)2narylree115目录5.4.2MaximumDepthofBi8.3.,2重新实现nextpermunaryTree116tation1425.4.3PathSum11783.3递归.1435.44PathSumil1188.4PermutationsII1445.4.5BinaryTreeMaximum8.4.1nextpermutation...144PathSuum11984.2重新实现nextpermu5.4.6PopulatingNextRighttation144Pointersineachnode120843递归1445.4.7SumRoottoLeafnum8.5Combinations146bers2185.1递归1468.5.2迭代147第6章排序1238.6LetterCombinationsofaphone6.1MergeSortedArray123umber1476.2MergeTwoSortedLists12486.1递归1486.3MergekSortedLists124862迭代96.4InsertionSortList125第9章广度优先搜索1506.5Sortlist1269.1WordLadder1506.6FirstMissingPositive1279.2WordLadderil1546.7SortColors1289.3Surroundedregions162第7章查找94小结16413194.l适用场景1647.1Searchforarange131942思考的步骤7.2SearchInsertPosition.13294.3代码模板1657.3Searcha2DMatrix133第10章深度优先搜索173第8章暴力枚举法13510.1PalindromePartitioning1738.1Subsets13510.2UniquePaths1768.1.1递归1350.2.1深搜1768.1.2迭代.1371022备忘录法.1768.2Subsetsil13810.23动规177821递归13810.24数学公式1788.2.2迭代.14110.3UniquePathsIl1798.3Permutations14210.3.1备忘录法1798.3.1nextpermutation14210.3.2动规.180目录10.4N-Queens1813.4Maximalrectangle21310.5N-QueensII18413.5BestTimetoBuyandSellStock10.6Restoreipaddresses186.21410.7CombinationSum18813.6InterleavingString21510.8CombinationSumIl18913.7ScrambleString21710.9GenerateParentheses.19013.8MinimumPathSum.22210.10Sudokusolver19213.9EditDistance22410.11WordSearch.19313.10DecodeWays.22610.12小结19513.11Distinctsub22710.12.1适用场景19513.12WordBreak22810.122思考的步骤1951313WordBreakil2300.12.3代码模板197第14章图23210.12.4深搜与回溯法的区別.19714.1CloneGraph23210.12.5深搜与递归的区别..197第15章细节实现题235第11章分治法19915.1ReverseInteger2351.1Pow(x,n)19915.2PalindromeNumber.23611.2Sqrt(x)20015.3InsertInterval237第12章贪心法20115.4MergeIntervals23812.1Jumpgame20115.5MinimumWindowSubstring23912.2JumpgameII15.6MultiplyStrings24112.3BestTimetobuyandSellstock20415.7SubstringwithConcatenation12.4BestTimetobuyandsellstockl205ofallwords24412.5LongestSubstringWithoutre15.8Pascal,sTriangle245peatingCharacters20615.9PascalsTriangleIl24612.6ContainerwithMostWater..20715.10SpiralMatrix24715.11SpiralmatrixII248第13章动态规划20915.12ZigZagConversion25013.1Triangle20915.13DivideTwoIntegers25113.2MaximumSubarray15.14TextJustification25313.3PalindromePartitioningII1215.15MaxPointsonaline255目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a==b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。
判断一个整数是否是为奇数,用x%2!=0,不要用x%2=1,因为ⅹ可能是负用char的值作为数组下标(例如,统计字符串中每个字符岀现的次数),要考虑到char可能是负数。
有的人考虑到了,先强制转型为unsignedint再用作下标,这仍然是错的。
正确的做法是,先强制转型为unsignedchar,再用作下标。
这涉及C十整型提升的规则,就不详述了。
以下是关于STL使用技巧的,很多条款来自《EffectiveSTL》这本书。
vector和string优先于动态分配的数组首先,在功能上,由于vector能够保证连续内存,因此一旦分配了后,它的功能跟原始数组相当;其次,如果用new,意味着你要确保后面进行孓delete,一旦忘记了,就会出现BUG,且这样需要都写一行delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如int**ary=newint*[row_num];for(inti=0:i<rownum;++1)ary[i]newint[col_num]用vector的话一行代码搞定vector<vector<int>>ary(row_num,vector<int>(col_num,0))使用reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。
2数组2.1.1RemoveDuplicatesfromSortedarray描述Givenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlengthDonotallocateextraspaceforanotherarray,youmustdothisinplacewithconstantmemoryForexample,GiveninputarrayA=[1,1,2Yourfunctionshouldreturnlength=2,andaisnow[1,2]分析无代码1/LeetCode,RemoveDuplicatesfromSortedArray//时间复杂度0(n),空间复杂度0(1)classSolutiontublicintremoveDuplicates(vector<int>&nums)tif(numsemptyo)return0;intindex=ofor(inti=1:inumssize:1++iif(nums[index]!nums[i])nums[++index]=nums[i]returnindex12.1数组代码2//LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(vector<int>&nums)treturndistance(numsbegin(),unique(numsbegin(),numsend())代码3/LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)lassSolutionfublicintremoveDuplicates(vector<int>&nums)treturndistance(numsbegin(,removeDuplicates(numsbegin(,numsend(),numsbegintemplate<typenameInIt,typenameoutit>OutItremoveDuplicates(InItfirst,InItlast,OutItoutput)thile(firstlast)i*output++=*firstfirstupper_bound(first,last,*firstreturnoutput相关题目RemoveDuplicatesfromSortedArrayI,见§2.1.22.1.2RemoveDuplicatesfromSortedArrayII描述Followupfor"RemoveDuplicates"Whatifduplicatesareallowedatmosttwice?Forexample,Givensortedarraya=[1,1,1,2,2,3]Yourfunctionshouldreturnlength=5,andAisnow[1,1,2,2,3分析加一个变量记录一下元素出现的次数即可。
这题因为是已经排序的数组,所以一个变量即可解决。
如果是没有排序的数组,则需要引入一个hashmap来记录出现次数。
4第2章线性表代码1//LeetCode,RemoveDuplicatesfromSortedArrayII//时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)classSolutiontublicintremoveDuplicates(vector<int>&nums)tif(numssize(<=2)returnnumssizeintindex=2for(inti=2:inumssize(:i++)ff(nums[i]!numslindex-2]nums[index++]=nums[i]returnindex;代码2下面是一个更简洁的版本。
上面的代码略长,不过扩展性好一些,例如将occur<2改为occur3,就变成了允许重复最多3次。
//LeetCode,RemoveDuplicatesfromSortedArrayII7/@author虞航仲(http://weibo.com/u/1666779725)//时间复杂度0(n),空间复杂度0(1)lassSolutionfpublicintremoveDuplicates(vector<int>&nums)tconstintn=numssizeintindex=0:for(inti=0:i<n;++i)if(i>0&&i<n-1&nums[i]=nums[i-1]&nums[i]=nums[i1])continue;nums[index++]=nums[i]returnindex;相关题目RemoveDuplicatesfromSortedArray,见§2.1.1
2019/5/20 21:34:34 866KB why
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡