字符串与模式匹配算法.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hu Junfeng Peking University 字符串与模式匹配算法 用数组来实现链表结构 struct Node{ DataType num; int next }; struct Slinklist{ Node list[MAXNUM]; int elementNum; } 12 9 0 -1 6 3 4 -1 1 2 作业讲评: 链表应用举例 —— Josephus问题 求解Josephus问题的一般步骤为: (1)首先利用线性表的一些运算如创建空线性表、插入元素等构造Josephus表; (2)从Josephus表中的第s个结点开始寻找、输出和删除表中的第m个结点,然后再从该结点后的下一结点开始寻找、输出和删除表中的第m个结点,重复此过程,直到Josephus表中的所有元素都删除。 顺序表应用举例 —— Josephus问题 void josephus_seq( PSeqList palist, int s, int m) { int s1, i, w; s1 = s - 1; for( i = palist-n; i0; i--) /* 找出列的元素 */ { s1 = ( s1 + m - 1 ) % i ; /*下一个出列的元素*/ w = palist-element[s1]; /* 求下标为s1的元素的值 */ printf(“Out element %d \n”,w); /* 元素出列 */ delete_seq(palist,s1); /* 删除出列的元素 */ } } 算法复杂度分析 (顺序结构) 步骤: 1: 建立顺序表 2: 出列 时间复杂度分析:出列元素的删除(移动实现)为基本运算(每次最多i-1个元素移动,需要n-1次) (n-1)+(n-2)+……+1 = n(n-1)/2 = O(n2) 算法复杂度分析 (链表结构) 步骤: (1)建立循环链表; (2)找循环单链表中的第s个结点放在指针变量p中 (3)从p所指结点开始计数寻找第m个结点,输出该结点的元素值; (4)删除该结点,并将该结点的下一个结点放在指针变量p中,转去执行(2),直到所有结点被删除为止; 时间复杂度分析: 三部分时间(创建链表:O(n)+ 求第s个结点:O(s)+ 求n个第m个应出列的元素:O(m*n)) 链表的用用:一元多项式和运算 一元多项式:Pn(x) = p0+p1x+p2x2+…+pn xn 线性表表示:P=(p0, p1, p2, …, pn) 顺序表表示:只存系数(第i个元素存xi的系数) 特殊问题:p(x) = 1+ 2x10000 + 4x40000 链表表示: 每个结点结构 系数 指数 0 -1 1 0 2 10000 4 40000 ^ 一元多项式表示和运算-3 数据定义: typedef struct { float c; //系数 int e; //指数 struct item *next } Item ; 加法: 相同指数对应结点的系数项相加, 如和为0,删除结点,否则必定为 和链表的一个结点。 (实质上就是两个单链表的合并问题) 3 2 5 1 9 0 11 0 10 1 12 2 6 3 两个一元多项式的乘法 可以利用两个一元多项式相加的算法来实现 M(x) = A(x) ? B(x) = A(x) ? [b1xe1+b2xe2+...+bnxen] = O(n2)复杂度的运算。 字符串与模式匹配: 字符串概念与抽象数据类型 串模式匹配 C语言中定义的字符串 存储结构: 字符指针 … \0 操作: string.h ?char *strcpy(char *dst, char *sorc) int strcmp(char *str1, char *str2);? char* strcat(char *dest, const char* sorc,size); char* strstr(char *str, const char *strSearch); size_t str

文档评论(0)

xiaolan118 + 关注
实名认证
内容提供者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档