数据结构基础:顺序表
一、数据结构简介
1. 什么是数据结构?
定义: 数据结构是计算机存储、组织数据的方式。
2. 为什么要使用数据结构?
在学习了数组概念后,如果数据量过大,仅用数组可能难以高效管理。数据结构以结构化的形式进行数据管理,提高效率和可维护性。
二、顺序表详解
1. 线性表
线性表(linear list)是 n 个具有相同特性的数据元素的有限序列。常见的线性表包括:顺序表、链表、栈、队列、字符串等。 线性表在逻辑上是线性结构,但在物理结构上并不一定是连续的。通常以数组和链式结构的形式存储。
2. 顺序表的定义
顺序表是一种线性表的顺序存储结构,底层结构为数组,即以一组地址连续的存储单元进行存储。 顺序表中可以存储任何类型的数据(整型、字符型、结构体、指针等)。
3. 顺序表的分类
(1)静态顺序表
大小固定不可改变,采用定长数组创建。
// 静态顺序表
typedef int SLDataType;
#define N 10
typedef struct SeqList {
SLDataType arr[N];
int size;
} SL;
缺点:空间确定,给多了浪费,给少了不够。
(2)动态顺序表
拥有动态改变内存大小的功能,运用 malloc、realloc 按需求申请或改变内存大小。
// 动态顺序表
typedef int SLDataType;
typedef struct SeqList {
SLDataType* arr;
int size; // 有效数据个数
int capacity; // 空间大小
} SL;
三、动态顺序表的功能实现
顺序表应包含增删查改等功能。建议将代码分为头文件(SeqList.h)、功能文件(SeqList.c)和测试文件(test.c)。
1. 顺序表定义
// SeqList.h
#include <stdio.h>
#include
SLDataType;
SLDataType* arr;
size;
capacity;
} SL;


