- 7
- 0
- 约5.65千字
- 约 31页
- 2017-04-21 发布于湖北
- 举报
数据结构-第4章 串-1精要
第4章 串;4.1 串类型的定义;注意:空串和空白串的不同,例如“ ”和“”分别表示长度为1的空白串和长度为0的空串。
子串(substring):串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称为主串。
子串的序号:将子串在主串中首次出现时的该子串的首字符对应在主串中的序号,称为子串在主串中的序号(或位置)。
例如,设有串A和B分别是:
A=“这是字符串”,B=“是”
则B是A的子串,A为主串。B在A中出现了两次,其中首次出现所对应的主串位置是3。因此,称B在A中的序号为3 。; 特别地,空串是任意串的子串,任意串是其自身的子串。
串相等:如果两个串的串值相等(相同),称这两个串相等。换言之,只有当两个串的长度相等,且各个对应位置的字符都相同时才相等。
通常在程序中使用的串可分为两种:串变量和串常量。
串常量和整常数、实常数一样,在程序中只能被引用但不能不能改变其值,即只能读不能写。通常串常量是由直接量来表示的,例如语句错误(“溢出”)中“溢出”是直接量。
串变量和其它类型的变量一样,其值是可以改变。;4.1.2 串的抽象数据类型定义 ;操作结果:将串t联结到串s后形成新串存放到s中。
StrLength(t)
初始条件:字符串t已存在。
操作结果:返回串t中的元素个数,称为串长。
SubString (s, pos, len, sub)
初始条件:串s, 已存在, 1≦pos≦StrLength(s)且 0≦len≦StrLength(s) –pos+1。
操作结果:用sub返回串s的第pos个字符起长度为len的子串。
……
} ADT String;4.2 串的存储表示和实现;4.2.1 串的定长顺序存储表示;1 串的联结操作
Status StrConcat ( StringType s, StringType t)
/* 将串t联结到串s之后,结果仍然保存在s中 */
{ int i, j ;
if ((s.length+t.length)MAX_STRLEN)
Return ERROR ; /* 联结后长度超出范围 */
for (i=0 ; it.length ; i++)
s.str[s.length+i]=t.str[i] ; /* 串t联结到串s之后 */
s.length=s.length+t.length ; /* 修改联结后的串长度 */
return OK ;
};2 求子串操作
Status SubString (StringType s, int pos, int len, StringType *sub)
{ int k, j ;
if (pos1||poss.length||len0||len(s.length-pos+1))
return ERROR ; /* 参数非法 */
sub-length=len-pos+1 ; /* 求得子串长度 */
for (j=0, k=pos ; k=leng ; k++, j++)
sub-str[j]=s.str[i] ; /* 逐个字符复制求得子串 */
return OK ;
};4.2.2 串的堆分配存储表示;1 串的联结操作
Status Hstring *StrConcat(HString *T, HString *s1, HString *s2)
/* 用T返回由s1和s2联结而成的串 */
{ int k, j , t_len ;
if (T.ch) free(T); /* 释放旧空间 */
t_len=s1-length+s2-length ;
if ((p=(char *)malloc(sizeof((char)*t_len))==NULL)
{ printf(“系统空间不够,申请空间失败 !\n”) ;
return ERROR ; }
for (j=0 ; js-length; j++)
T-ch[j]=s1-ch[j] ; /* 将串s复制到串T中 */;for (k=s1-length, j=0 ; js2-length; k++, j++)
T-ch[j]=s1-ch[j] ; /* 将串s2复制到串T中 */
free(s1-ch) ;
free(s2-ch) ;
return OK ;
};4.2.3 串的链式存储表示;串的块链式存储的类型定义包括:
⑴ 块结点的类型定义
#define BLOCK_SIZE 4
typedef struct Blstr
您可能关注的文档
- 数据库课程设计报告及部分代码精要.doc
- 数据挖掘2453精要.ppt
- 数据库第4章精要.pptx
- 数据的查询和显示精要.ppt
- 数据的分析全章测试题含答案精要.doc
- 数据的输入与编辑精要.docx
- 数据的采集与音频信号的频谱分析 课程设计精要.doc
- 数据挖掘与统计决策--学科概述 聚类分析 因子分析精要.ppt
- 数据结构 实验一 图精要.doc
- 数据结构 第七章 图精要.pptx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 宝城期货-原油2026年度报告-油海浮沉浪几重,掣鲸博弈破苍穹.pdf VIP
- 学堂在线 雨课堂 学堂云 临床中成药应用 综合考试答案.docx VIP
- 2018年1月13日山东济南事业单位考试《公共基础知识》(客观题部分).docx
- 食品生物技术-绪论.pptx VIP
- 2025年青岛职业技术学院单招笔试英语试题库含答案解析.docx VIP
- 中外建筑史7-近现代建筑.pptx VIP
- 2025年云南省中考生物真题(原卷).pdf
- 高中奥林匹克物理竞赛解题方法集.pdf VIP
- 梁小民西方经济学基础教程(第三版)第01章.ppt VIP
- 小学英语语法代词省公开课一等奖全国示范课微课金奖课件.pptx VIP
原创力文档

文档评论(0)