顺序表的特点(数组实现):
线性表:具有相同数据类型的数据元素的有限集合 包括顺序表,链表
顺序表:逻辑上相邻的元素存储在物理位置相邻的存储单元中,通常用数组实现。
//线性表:数组里面放任意数据类型 (包括结构体)
typedef struct
{
char name[10];
int age;
}datatype;
typedef struct
{
datatype data[10];
int len;
}sqlist;
数组:相同数据类型的变量按一定次序排列的数据集合。
1> 物理存储位置上的临接关系来表示逻辑关系 2>可通过数组下标随机访问任意元素 3>不用尾结点的逻辑关系开辟额外的开销 4>表的大小固定不可随意改变 5>插入删除需要移动大量元素(平均移动一半元素)
/*返回线性表第i个元素的值
*在线性表第i个元素之前插入元素
*删除线性表第i个元素
*打印线性表所有的元素*/
#include <stdio.h>
#include <stdlib.h>
#define MAXLINE 100
//结构体为数组申请好大小为MAXLINE的空间
typedef struct
{
int array[MAXLINE];
int length;
}sqlist;
//创建顺序表
//main 函数中定义了指向顺序表的指针变量sqlist *
//修改指针变量内容传指针变量的地址,确
//保在此子函数中生成的顺序表返回到主函数中仍能找到它
//子函数传入地址才能成功改变地址对应的的值
void creatlist(sqlist **s)
{
int i=0,n=0;
printf("input the length of list\n");
scanf("%d",&n);
printf("input the elements of the list\n");
for(i=0;i<n;++i)
{
scanf("%d",&(*s)->