10

本文介绍了串作为一种特殊线性表的抽象数据类型定义及其基本操作,包括串的定长顺序存储表示方法,并讨论了如何通过几种核心操作实现其他串操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

严蔚敏视频 笔记10

第四章 串

4.1 串的抽象数据类型的定义

ADT String {
   
数据对象:
D={ai|ai∈CharacterSet,i=1,2,…n,n>=0}
   
数据关系:
R1={<ai-1,ai>|ai-1,ai∈D,i=2,…n}
   
基本操作:

        StrAssign(&T,chars)
赋值
        StrCompare(S,T)
按字典顺序比较大小
        StrCopy(&T,S)
复制
        StrLength(S)
求长度
        ClearString(&S)
清空
        DestroyString(&S)
销毁
        Concat(&T,S1,S2)
联接
        StrEmpty(S)
判串空
        SubString(&Sub,S,pos,len)
求子串
        Index(S,T,pos)
子串定位
        Replace(&S,T,V)
置换
        StrInsert(&S,pos,T)
插入
        StrDelete(&S,pos,len)
删除
}

串和线性表逻辑结构相似,区别仅为串的数据对象约束为字符集
基本操作对象不同,线性表为单个元素,而串是串的整体

最小操作子集:
StrAssign
StrCopyStrCompare StrLengthConcat

SubString
其它可以相应实现

C语言里有特定的函数

4.2 串的表示和实现
一、串的定长顺序存储表示
#define MAXSTRLEN 255
//
用户可以在255以内定义最大串长
typedef unsigned char Sstring[MAXSTRLEN+1];
// 0
号单元存放串的长度

超过长度会被截断

联接算法要分3种情况处理
基本操作:字符序列的复制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值