当前位置:首页 » 服务存储 » 串s和串r均定长顺序存储
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

串s和串r均定长顺序存储

发布时间: 2023-03-08 00:55:18

① 堆串属于顺序存储

堆串的本质还是顺序存储,只不过内存是动态分配的。

定长顺序存储结构和堆分配存储结构都是顺序存储结构,它们的主要区别是前者的串长是固定的。后者的串长是动态串的定长顺序存储结构的缺点是限定了串的长度,若超出长度则约定截断堆分配存储表示解决上面的问题,它动态分配串值得存储空间。

串值共享的存储空间称之为堆,串的块链存储,表示该存储结构为链式存储结构,存储密度=串值所占的储存位/实际分配的存位块链结构。

是结构中包含头指针、尾指针、当前串长度的一种结构使用块链结构的目的是为了提高存储密度。串的堆存储结构,与定长顺序串的存储结构类似,都是用一维数组地址连续的存储单元存储串的字符序列,不同的是堆串的存储空间是在程序执行过程中动态分配的。

定长顺序存储结构和堆分配存储结构都是顺序存储结构,它们的主要区别是前者的串长是固定的,后者的串长是动态串的定长顺序存储结构的缺点是限定了串的长度,若超出长度则约定截断堆分配存储表示解决上面的问题,它动态分配串值得存储空间。

② C语言(数据结构)怎么用顺序存储的串的0号单元存放串长度

char里面放的是字符还是数字,是编程者决定的。如果写SString[0]=8,存的就是数字;如果写SString[0]='8',存的就是字符,也就是数字8的ASIIC值

③ 数据结构中定长顺序串的存储表示

这是C里面惯用的方式,在变长的类型变量里为了确定其长度,通常在首部存入长度信息。
不过你这里的S[0] 肯定不会在定义后就自动的写上值的,应该是SString相关的操作函数会来维护其第一位的长度信息。

④ 假设串采用定长顺序存储结构

#include <stdio.h>
int STRCMP(char *p, char *q)
{
while(*p == *q && *p != '\0'){
p++;
q++;
}
return *p - *q;
}
int main()
{

char str1[128];
char str2[128];
int n;
printf("input str1:\n");
scanf("%s", str1);
printf("input str2:\n");
scanf("%s", str2);
n = STRCMP(str1,str2);
printf("%d", n);
putchar('\n');
return 0;
}