- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第3章--字符串-数组-特殊矩阵
* * * * * * */35 创建十字链表算法 创建带指针数组的十字链表 定义足够大的数组,输入行数m,列数n,元素个数t; 初始化表头:造max(m,n)+1个表头结点的循环链表;h[i]指向第i个结点,代表第i行/列的表头,h[0]指向整个链表的表头; for ( i=1; i=t; i++ ) 输入元素行值x,列值y,元素值v;造结点Q; 将h[x].right链的末尾指向Q; 将h[y].down链的末尾指向Q; ——为高效,可将b、c两步用头插法; 算法分析: T(n)=O(t ? s) 其中:t — 非零元个数 s= max(m,n) */35 带指针数组的十字链表的创建过程示意图 4 5 0 1 2 3 4 5 1 2 1 1 5 3 1 3 2 3 1 4 3 5 6 3 3 5 4 1 7 4 2 8 4 3 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:此循环指针在每次插入新结点时修改。此处为方便画图,在最后才补充完整。列的循环指针同样如此。 */35 查找十字链表算法 适于用带指针数组的十字链表 findX ( h[], x ){ for (i=1; i=max(行数,列数); i++ ) 扫描 h[ i ] 指向的循环链表,若发现则return 1; return -1; } */35 4. 广义表 结构定义 广义表LS=(d1,d2,…,dn) 当广义表非空时,称第一个元素d1为LS的表头(head),其余元素组成的表(d2,d3,…,dn)是LS的表尾(tail) 例如:1. A=() ; 2. B=(e); 3. C=(a, (b,c,d)) 4. D=(A,B,C); 元素为子表 5. E=(a, E); 递归定义 与线性表的最大区别在于,广义表的元素可以是子表,而不一定是单个元素。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * 数 据 结 构Data Structures 化志章 江西师范大学计算机信息工程学院 E-mail: hzz@jxnu.edu.cn */35 数 据 结 构 引言 第一章 概论 第二章 线性表 第三章 广义表、字符串、数组和特殊矩阵 第四章 递归技术 第五章 树和二叉树 第六章 图 第七章 检索 第八章 内排序 第九章 外排序 第十章 动态存储管理 */35 字符串 概念及数据结构、实际存储方式、应用 字符串的模式匹配 朴素的模式匹配算法 快速模式匹配算法(KMP算法) 数组 特殊的矩阵 对称阵、三角阵、带状矩阵(X对角阵) 稀疏矩阵 广义表 第三章 字符串、数组、广义表、特殊矩阵 */35 1. 字符串 概念及数据结构 定义:由零个或多个字符构成的有限序列,一般可表示成如下形式:c1c2c3….cn ,(n≥0)。当n=0时表示空串。 ADT string { 数据对象D:由零个或多个字符构成的有限集合; 数据关系R:{ai, ai+1|其中ai, ai+1?D, i=1,2,……n-1 } 字符串的基本操作如下: } ADT string 1) Strcreate (S) 2) Strassign(S, T) 3) Strlength(S) 4) Strempty(S) 5) Strclear(S) 6)Strcompare(S1,S2) 7) Strconcat(S1,S2) 8) Substring(S, i, len) 9) Index(P,T) 10) Strinsert(S, i, T) 11) Strdelete(S,i,len) 12) Replace(S, T1, T2) 13) Strdestroy(S) */35 1. 字符串 字符串的实际存储方式 静态存储结构:即顺序存储结构; 堆存储结构:顺序存储+动态分配; —— 即总空间足够大,且顺序(地址连续),执行时在此空间动态分配/释放字符串。 链式存储结构 串名的存储映象:即建立串名和串值之间的对应关系的一个符号表。 对C中的字符串,若从输入设备读取,最好定义为字符数组,而非字符指针。二者在空间分配方面有很大不同。 */35 1. 字符串 相关知识 串的表示、字符的表示、空串及其表示、主串、子串、子串在主串中的位置、串的相
文档评论(0)