数据结构 (三) -- 串、数组和广义表

数据结构 (三) – 串、数组和广义表


部分转载LUOFANG SHIJIE 的



串跟线性表一样,有顺序存储结构和链式存储结构,但是在考虑到效率的问题,常常使用顺序存储结构


串的顺序存储结构

#define Maxsize 255
typedef struct 
{
	char ch[Maxsize +1];  //存储串的一维数组
	int length; //串的当前长度
}SString;

为了便于说明,一般顺序存储的字符串都是采用下标为1开始的,下标为0的分量闲置不动

typedef struct
{
	char *ch;
	int length;
}HString;

数组的顺序存储方式

1.以列序为主序的存储方式

2.行序为主序的存储方式

广义表

线性表的推广

在这里插入图片描述
在这里插入图片描述

广义表的三个特点:

  1. 广义表的元素可以是子表,而子表的元素还可以是子表
  2. 广义表可以为其他表而共享
  3. 广义表可以是一个递归的表,即广义表本身也可以是本身的一个子表

广义表中两个重要的运算

  1. 取表头:取出的表头为非空广义表的第一个元素,他可以是一个单原子,也可以是一个子表。
  2. 取表尾:取出的表尾为除去表头之外,由其余元素构成的表,则表尾一定是一个广义表。

广义表的存储结构

广义表常常采用链式存储结构(头、尾链表的存储结构和扩展性链表的存储结构)

猜你喜欢

转载自blog.csdn.net/Touale/article/details/112670143
今日推荐