赞
踩
线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的 数据结构,常见的线性表:顺序表、链表、栈、队列、字符串······
线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,线性 表在物理上存储时,通常以数组和链式结构的形式存储。
概念:顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构,⼀般情况下采⽤数组存储。
顺序表和数组的区别?
顺序表的底层结构是数组,对数组的封装,实现了常⽤的增删改查等接⼝。可以这么理解,我们使用数组来存储数据,并提供了增删查改数据的接口(函数),这样组织和存储数据的结构我们将它称为顺序表。
概念:使用定长数组存储元素
概念:不存储数组,而是存储一个指向一块动态开辟的内存空间的指针
优点:按需开辟,可增容
故我们一般都使用动态顺序表
创建顺序表,并将其中的指针置为NULL,容量和有效数据个数置为0,销毁大致相同,不过如果arr指针非空,不要忘了释放动态申请的空间
SeqList.h(其中方法会一一讲到)
#pragma once #include <stdio.h> #include<stdlib.h> #include <assert.h> typedef int sldatatype; typedef struct Seqlist { sldatatype* arr; sldatatype size; sldatatype capacity; } sl; void slinit(sl*);//初始化 void sldestroy(sl*);//销毁 void slprint(sl*);//打印 void checkcapacity(sl*);//判断空间是否足够 void slpushback(sl*, sldatatype);//尾插 void slpushfront(sl*, sldatatype);//头插 void slpopfront(sl*);//头删 void slpopback(sl*);//尾删 //在指定位置插入和删除数据 void slinsert(sl*, sldatatype, int); void slfrase(sl*, int); //查找指定数据 int slfind(sl*, sldatatype);
test.c
最好是写一个方法测试一次,不然找错误的时候会很痛苦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。