线性表的顺序存储结构是指用一段地址连续的存储单元存储数据
/*
*顺序存储结构可以用数组
*/
#include
#define MAXSIZE 20 //存储空间初始分配量
//结点
typedef struct
{
int data[MAXSIZE];//数组,存储数据元素(数据域)
int length;//线性表当前长度
}Sqlist;
/*初始化顺序表*/
void init_list(Sqlist *L)
{
L->length = 0;
}
/*判断顺序表是否为空*/
int list_empty(Sqlist*L)
{
if(L->length==0)
return 0;
else
return 1;
}
/*顺序表的清空*/
void list_clear(Sqlist*L)
{
L->length=0;
}
//头插法
void list_insert(Sqlist*L,int i,int e)
{
if(L->length==MAXSIZE)//如果顺序表已满
return;
if(iL->length+1)
return;
if(ilength)//如果插入的元素不在表尾
{
for(int k=MAXSIZE-1;k>i-1;k--)
{
L->data[k]=L->data[k-1];
}
}
L->data[i-1]=e;
L->length++;
}
int get_elem(Sqlist*L,int i)
{
int e;
e=L->data[i-1];
return e;
}
void list_delete(Sqlist*L,int i)
{
if(L->length==0)
return;
if(iL->length)
return;
if(ilength)
{
for(int k=i;klength;k++)
{
L->data[k-1]=L->data[k];
}
}
L->length--;
}
void list_show(Sqlist*L)
{
printf("顺序表的元素:");
for(int i=0;ilength;i++)
printf("%2d",L->data[i]);
}
int main()
{
int i;
Sqlist L;//创建一个顺序表
init_list(&L);
printf("初始化后的线性表长度length:%d\n",L.length);
//插入1-5
printf("插入1-5:\n");
for(int j=1;j
Original: https://www.cnblogs.com/codecp/p/15590623.html
Author: 君有云
Title: 线性表-顺序表
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/715229/
转载文章受原作者版权保护。转载请注明原作者出处!