跳到主要内容

串的存储结构演示

串的存储主要有两种方式:

  1. 顺序存储:类似于数组,紧凑但需要预分配空间。
  2. 链式存储:为了提高存储密度,通常一个结点存储多个字符(块链)。
Step 1/4初始化空串:申请固定大小数组 (MAXSIZE),长度为 0。
1// 定长顺序存储
2#define MAXSIZE 255
3typedef struct {
4 char ch[MAXSIZE]; // 静态数组
5 int length; // 当前长度
6} SString;
struct SString
0
1
2
3
4
5
6
7
8
9
...
int length =
0
⚠️ 定长数组:无论存多少字符,都占用 MAXSIZE 空间

1. 单字符结点

typedef struct StringNode{
char ch; // 每个结点存1个字符
struct StringNode* next;
}StringNode,*String;
  • 存储密度低:每个字符 1B,每个指针 4B。 Img

2. 多字符结点

typedef struct StringNode {
char ch[4]; // 每个结点存多个字符
struct StringNode* next;
}StringNode,*next;
  • 存储密度高于单字符结点。 Img

💬 留下你的问题或见解