當前位置:首頁 » 服務存儲 » 串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;
}