字符串(堆分配存储)11种操作的实现

本文详细介绍了字符串在堆上分配存储时的11种操作实现,涵盖创建、复制、拼接、查找、删除等关键功能,深入探讨了内存管理和指针操作在字符串处理中的应用。
摘要由CSDN通过智能技术生成

操作

时间复杂度(T(n))

空间复杂度(S(n))

判断是否为空

O(1)

O(1)

得到长度

O(1)

O(1)

清空字符串

O(1)

O(1)

比较两个字符串         (长度分别为m,n)

O(min(m,n))

O(1)

比较两个字符串         (长度分别为m,n)

O(n)

O(n)

在字符串1中查找字符串2(长度分别为m,n)

O((m-n+1)*n^2)

O(m-n+1):字符串1中最多有m-n+1个长度为n的子字符串

O(n):截取一个长度为n的子字符串

O(n):比较两个长度均为n的字符串

O((m-n+1)*n)

O(m-n+1):字符串1中最多有m-n+1个长度为n的子字符串

O(n):截取一个长度为n的子字符串

截取子字符串

O(n):表示是线性的,下同

O(n)

插入字符串

O(n)

O(n)

删除字符串

O(n)

O(n)

/*   数据结构分析与学习专栏
*  Copyright (c) 2015, 山东大学计算机科学与技术专业学生
*  All rights reserved.
*   作    者:   高祥
*   完成日期:  2015 年 4 月 7 日
*   版 本 号:014
 
*任务描述:针对字符串,实现15个基本操作
*   1:建立字符串
*   2:输出字符串
*   3:判断字符串是否为空
*   4:求字符串的长度
*   5:清空字符串
*   6: 比较两个字符串的大小
*   7:连接两个字符串并将结果返回到第一个字符串中
*   8:在字符串1中查找字符串2出现第一次的首字符的索引
*   9:输出字符串的某一子字符串
*  10:在当前字符串中的某位置插入另一个字符串
*  11:在当前字符串中的某位置删除一个字符串
 
*主要函数:
*  1.void StringAssign(String &str,char *chars);//创建字符串
*  2.void Output(String str);//输出字符串
*  3.Status IsEmpty(String str);//判断字符串是否为空
*  4.void StringLength(String str);//求字符串的长度
*  5.void ClearString(String &str);//清空字符串
*  6.Status StringCompare(String str1,String str2);//比较两个字符串的大小
*  7.void ContactString(String &str1,String &str2);//连接两个字符串
*  8.void IndexOfString(String str1,String str2);//求字符串2在字符串1中第一次出现的首字符位置索引
*  9.String SubString(String str,int pos,int length);//截取子字符串并返回
*  10.void StringInsert(String &str1,String str2,int pos);//在字符串1中位置为POS处插入字符串2
*  11.void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值