顺序表
顺序表使用一组连续的物理内存存储地址按照次序存放线性表的元素。
实现要点:
1.顺序表的长度可变。
2.利用C语言的动态内存分配函数,动态分配内存,增加顺序表长度。
3.顺序表初始分配一定大小的存储空间,当空间不足时,再次申请一定增量的空间。
优缺点:
1.顺序表具备随机存取特性,直接根据内存位置访问数据。
2.顺序表插入和删除操作,需要移动大量元素。
因此:顺序表适用于很少进行插入、删除操作,经常进行大量查询修改操作的场景。
使用示例
功能:输入数据个数和数据,逆序保存到顺序表,并逆序输出显示到屏幕。
运行结果如下:
请输入数据个数:10
请输入10个整数:0 1 2 3 4 5 6 7 8 9
顺序表输出结果:9 8 7 6 5 4 3 2 1 0
顺序表删除5位置元素后输出结果:9 8 7 6 4 3 2 1 0
代码实现
*/
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表
// 顺序表初始分配的内存大小
#define LIST_INIT_SIZE 5
// 顺序表内存大小增量
#define LIST_INSCREMENT_SIZE 10
typedef struct {
// 存储数据的内存首地址
int *pdata;
// 顺序表长度,保存数据的个数
int length;
// 顺序表存储空间大小
int size;
}sqlist;
// 创建和初始化
sqlist *create_init_sqli