ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

数据结构-线性表-顺序表1

数据结构-线性表-顺序表1 一.线性表线性表是最基础最简单的数据结构是由n个相同特性的元素构成的有限序列常见的线性表有顺序表链表栈队列字符串等等。线性表的逻辑结构一定是线性结构但是物理结构不一定是连续的线性表在物理上存储时通常以连续存储和链式存储的方式存储。二.顺序表1.定义顺序表是一段物理地址连续存储的内存单元依次存储数据元素的线性结构一般情况下用数组来存储。2.和数组的异同1.关系数组是底层连续的内存容器顺序表示依托数组封装而成的数据结构。2.数组语言基础类型容量固定只提供下标访问无有效长度记录没有增删扩容等封装逻辑。3.顺序表数据结构区分总容量与当前有效长度自带增删查改判空动态扩容等功能。4.共同点物理空间连续支持下标随机访问中间插入删除都需要挪动元素。5.总结顺序表的底层结构是数组对数的封装实现了增删查改等接口。3.顺序表的分类1.静态顺序表使用定长数组存储元素。#define MAXSIZE 100 // 固定最大容量 typedef struct StaticSeqList { int arr[MAXSIZE]; int size; // 当前有效元素个数 } SList;缺陷空间给少了不够用给多了造成浪费。2.动态顺序表底层使用堆上动态开辟的数组初始容量较小元素存满时自动重新申请更大的内存拷贝数据释放就内存运动时可动态扩容。typedef struct DynamicSeqList { int* arr; // 指向堆区动态数组 int size; // 当前有效元素个数 int capacity;// 当前总容量 } DList;
返回列表