数据结构课设 个人账簿管理系统 C++源码 需要的拿去
2022-12-04 22:59:35 7KB 个人账簿管理
1
一、需求分析 1、以单项循环链表存储结构模拟约瑟夫环问题。即编号为1、2、3…、n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向下一个人开始重新从1报数,如此下去,直至所有的人全部出列为止。按出列顺序印出各人编号。 2、 演示程序以用户与计算机的对话方式执行,用户输入相应的数据,输出结果显示在其后。 3、 测试数据:m初始值20,n=7,7个人密码依次为:3,1,7,2,4,8,4。正确出列顺序为6,1,4,7,2,3,5。 二、概要设计 1. 抽象数据类型的定义为: ADT LNode { 数据对象:D={ai | ai∈CharSet,i= 1,2,…,n,n≥0} 数据关系:R1={< ai-1 ,ai > | ai ∈D, I=2,…,n} 基本操作: initList(Linklist &L)
2022-12-04 22:12:43 33KB 数据结构 约瑟夫环 c++
1
数据结构单链表学习:利用单链表实现两个集合的交集 博客地址:https://blog.csdn.net/qq_39400324/article/details/122768789
2022-12-04 19:53:32 3KB 数据结构 单链表 交集 C++
1
二、实验内容为Linux系统设计一个简单的二级文件系统 三、实验提示(1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等 四、实验报告内容实验目的实验
2022-12-04 19:35:38 10KB 操作系统 linux 毕业设计 数据结构
1
数据结构课程设计_赫夫曼编译码器。利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。
2022-12-04 17:20:52 43KB 赫夫曼编译码器
1
程序的代码文件找不到了,师弟师妹们需要的话就下载报告看看吧,忘记报告中的代码完不完整了,不过有结果截图什么的,有需要的师弟师妹自取,免费提供
2022-12-04 14:18:28 1.44MB 广东工业大学 数据结构 实验报告
1
一、问题描述 运用Prim算法或Kruskal算法构造图的最小生成树。 输入格式(无向图的邻接矩阵): 8 10, 0 5, 6, 0 0, 3, 13, 0 二、实验目的 掌握图的存储方法、Prim算法或Kruskal算法。 三、实验内容及要求 1、构造图的存储结构。 2、实现Prim算法或Kruskal算法,求出给定无向图的最小生成树。
2022-12-04 12:36:16 2KB 数据结构 最小生成树
1
北方工业大学专升本数据结构复习题,光说不练假把式,这道习题帮你·了解对知识点的掌握,帮你复习知识点,帮你加深数据结构的印象。
2022-12-04 09:15:17 157KB c 数据结构
1
数据结构,算法与应用 ---C++语言描述(代码与习题答案)数据结构,算法与应用 ---C++语言描述(代码与习题答案)
2022-12-03 21:18:03 1.62MB 数据结构 算法与应用 C++ 代码
1
KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: int Index_BF ( char S [ ], char T [ ], int pos ) { /* 若串 S 中从第pos(S 的下标0≤pos S[0] != S[1],S[1] != S[2],所以S[1] != T[0],S[2] != T[0]. 还是从理论上间接比较了。 有人疑问又来了,你分析的是不是特殊轻况啊。 假设S不变,在S中搜索T=“abaabd”呢?答:这种情况,当比较到S[2]和T[2]时,发现不等,就去看next[2]的值,next[2]=-1,意思是S[2]已经和T[0] 间接比较过了,不相等,接下来去比较S[3]和T[0]吧。 假设S不变,在S中搜索T=“abbabd”呢?答:这种情况当比较到S[2]和T[2]时,发现不等,就去看next[2]的值,next[2]=0,意思是S[2]已经和T[2]比较过了,不相等,接下来去比较S[2]和T[0]吧。 假设S=”abaabcabdabba”在S中搜索T=“abaabd”呢?答:这种情况当比较到S[5]和T[5]时,发现不等,就去看next[5]的值,next[5]=2,意思是前面的比较过了,其中,S[5]的前面有两个字符和T的开始两个相等,接下来去比较S[5]和T[2]吧。 总之,有了串的next值,一切搞定。那么,怎么求串的模式函数值next[n]呢?(本文中next值、模式函数值、模式值是一个意思。) 三. 怎么求串的模式值next[n] 定义: (1)next[0]= -1 意义:任何串的第一个字符的模式值规定为-1。 (2)next[j]= -1 意义:模式串T中下标为j的字符,如果与首字符 相同,且j的前面的1—k个字符与开头的1—k 个字符不等(或者相等但T[k]==T[j])(1≤k0 但k #include int KMP(const char *Text,const char* Pattern) //const 表示函数内部不会改变这个参数的值。 { if( !Text||!Pattern|| Pattern[0]=='\0' || Text[0]=='\0' )// return -1;//空指针或空串,返回-1。 int len=0; const char * c=Pattern; while(*c++!='\0')//移动指针比移动下标快。 { ++len;//字符串长度。 } int *next=new int[len+1]; get_nextval(Pattern,next);//求Pattern的next函数值 int index=0,i=0,j=0; while(Text[i]!='\0' && Pattern[j]!='\0' ) { if(Text[i]== Pattern[j]) { ++i;// 继续比较后继字符 ++j; } else { index += j-next[j]; if(next[j]!=-1) j=next[j];// 模式串向右移动 else { j=0; ++i; } } }//while delete []next; if(Pattern[j]=='\0') return index;// 匹配成功 else return -1; } int main()//abCabCad { char* text="bababCabCadcaabcaababcbaaaabaaacababcaabc"; char*pattern="adCadCad"; //getNext(pattern,n); //get_nextval(pattern,n); cout<
2022-12-03 21:12:51 418KB c语言 数据结构 字符串模式匹配 算法
1