【数据结构】--顺序串

本文详细探讨了顺序串这一基本数据结构,包括其定义、特性、存储方式及常见操作,如插入、删除和查找。通过实例分析,阐述了顺序串在实际问题中的应用,并对比了与其他数据结构的优缺点,帮助读者深化对顺序串的理解。
摘要由CSDN通过智能技术生成
#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,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值