#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
//串的顺序存储
typedef struct st
{
char *ch; //串存放的起始地址,串中第i个字符存储在ch[i-1]中
int length; //串的长度
int strsize; //分配的存储空间的大小,如果不足,在通过realloc()分配增加空间
}string;
//串的初始化操作
string CreateNullString()
{
string s;
s.length = 0;
s.ch = (char*)malloc(MAXSIZE *sizeof(char));
s.strsize = MAXSIZE;
return s;
}
//判断空串
int isEmpty(string s)
{
if (s.length == 0)
return 1;
else
return 0;
}
//赋值操作
void StringAssign(string *s1, char s2[])
{
int i = 0;
while (s2[i] != '\0') // '\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'
i++; //计算s2的长度
if (i>s1->strsize)
{
//所赋值的字符数组超过字符串的默认容量,则增加存储空间
s1->ch = (char*)malloc(i*sizeof(char));
s1->strsize = i;
}
s1->length = i;
for (i = 0; i<s1->length; i++)
s1->ch[i] = s2[i]; //从第一个字符开始逐个字符赋值
}
//串拷贝操作
void StringCopy(string *s1,
【数据结构】--顺序串
本文详细探讨了顺序串这一基本数据结构,包括其定义、特性、存储方式及常见操作,如插入、删除和查找。通过实例分析,阐述了顺序串在实际问题中的应用,并对比了与其他数据结构的优缺点,帮助读者深化对顺序串的理解。
摘要由CSDN通过智能技术生成