- 5
- 0
- 约 5页
- 2017-01-12 发布于江苏
- 举报
线性表的顺序存储
顺序存储定义
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
线性表的一些常用操作1 创建线性表2 ?销毁线性表3 清空线性表4 ?将元素插入线性表5 ?将元素从线性表中删除6 获取线性表中某个位置的元素7 ?获取线性表的长度
用如下一个柔性数组来实现顺序存储结构
[cpp]?
span?style=font-size:18pxtypedef?struct?tag_seqlist??
{??
???int?capicity;?//最大容量??
???int?length;?//目前该线性表的长度??
???Tseqlistnod*?node;?//线性表存储数据??
}?Tseqlist;/span??
1 创建线性表
[cpp]?
span?style=font-size:18pxSeqList*?SeqList_Create(int?capacity)??
{??
Tseqlist*?ret?=?NULL;??
if?(capacity?=?0)??
{??
ret?=?(Tseqlist*)?malloc(sizeof(Tseqlist)?+?sizeof(Tseqlistnod)?*?capacity);?//为柔性数组分配内存空间??
}/span??
? ? ? //如果分配成功则建立一个线性表i
[cpp]?
span?style=font-size:18pxf?(ret?!=?NULL)??
{??
ret-capicity?=?capacity?;??
ret-length?=?0;??
ret-node?=?(Tseqlistnod*)(ret?+?1);??
}??
return?ret;??
}/span??
2 ?销毁线性表
销毁线性表需要释放分配的内存
[cpp]?
void?SeqList_Destroy(SeqList*?list)??
{??
free(list)?;??
list?=?NULL?;??
}??
3 清空线性表
//在这里,只是把线性表的实际长度变为了0,但是没有对已经存储的数据进行清除
[cpp]?
void?SeqList_Clear(SeqList*?list)??
{??
???????//创建一个新的线性表指针指向要清除的线性表的第一个元素??
Tseqlist*?slist?=?(Tseqlist*)?list;??
if?(slist?!=?NULL)??
{??
slist-length?=?0;??
}??
??
}??
4获取线性表的长度
[cpp]?
int?SeqList_Length(SeqList*?list)??
{??
Tseqlist*?slist?=?(Tseqlist*)?list;??
int?ret?=?-1;??
if?(slist?!=?NULL)??
{??
ret?=?slist-length;??
}??
return?ret;??
}??
5获取线性表的容量??
[cpp]?
int?SeqList_Capacity(SeqList*?list)??
{??
Tseqlist*?slist?=?(Tseqlist*)?list;??
int?ret?=?-1;??
if?(slist?!=?NULL)??
{??
ret?=?slist-capicity;??
}??
return?ret;??
??
??
??
}??
4 ?将元素插入线性表
插入元素算法 1 判断线性表是否合法 2 判断插入位置是否合法 3 把最后一个元素到插入位置的元素后移一个位置 4 将新元素插入 5 线性表长度加1
[cpp]?
span?style=font-size:18pxint?SeqList_Insert(SeqList*?list,?SeqListNode*?node,?int?pos)??
{??
Tseqlist*?slist?=?(Tseqlist*)?list;??
int?ret?=?-1;??
int?i?=?0;??
????????//判断线性表是否合法??
ret?=?(slist?!=?NULL)??(slist-capicity?=?slist-length?+?1)??(pos?=?0);??
?????if?(ret)??
?????{????????????
????????????????//判断插入位置是否合法??
if?(pos?=?slist-length)??
{??
pos?=?slist-length;??
}??
for?(?i?=?slist-length;?i??pos;
您可能关注的文档
- 线性电机.docx
- 线性表(顺序存储)及其应用.doc
- 线性表基本操作-示例程序02.doc
- 线性表的c++.doc
- 线性表的疑问.docx
- 线性表的所有操作.doc
- 线性表的顺序结构及其应用.doc
- 线性表编程练习题.doc
- 线性表自测题.doc
- 线性规划(理文).docx
- 2026年中国窗饰产品市场全景调查与市场供需预测报告.docx
- 2026年中国船舶水下清洗行业深度研究报告:市场需求预测、进入壁垒及投资风险.docx
- 2026年中国船用绞车行业运行态势及十五五盈利前景预测报告.docx
- 2026年中国橱柜行业深度调研报告.docx
- 2026年中国船用绞车市场深度调研及投资前景战略分析报告.docx
- 2026年中国船用配套设备市场发展策略及投资潜力可行性预测报告.docx
- 2026年中国储能材料行业运营态势与投资前景预测分析报告.docx
- 2026年中国储氢材料行业运营现状及发展规划分析报告.docx
- 2026年中国传真机市场深度研究及投资前景咨询报告.docx
- 2026年中国储能变流器(PCS)产业深度评估与发展前景趋势分析研究报告.docx
原创力文档

文档评论(0)