此表很好建立,而且进行查找,删除,插入都容易理解,但是有一个缺点:删除和插入需要调动好些元素
/*线性表的顺序实现*/
#include<stdio.h>
#include<stdlib.h>#define MAXSIZE 15
struct SqList
{
int *Ele;
int Length;
};
/*线性表的初始化*/
void Init_Sq(SqList &L)
{
L.Ele=(int *)malloc(sizeof(int)*MAXSIZE);
L.Length=0;
}
/*线性表的建立*/
void Build_Sq(SqList &L)
{
int i,sum;
printf("请输入长度及数据\n");
scanf("%d",&sum);
L.Length=sum;
for(i=0;i<sum;i++)
scanf("%d",&L.Ele[i]);
}
/*线性表的输出*/
void Print_Sq(SqList &L)
{
int i;
for(i=0;i<L.Length;i++)
printf("%d ",L.Ele[i]);
printf("\n");
}
/*线性表的查找*/
int Locate_Sq(SqList &L,int num)
{
int i;
for(i=0;i<L.Length;i++)
if(num==L.Ele[i])
return i+1;
return 0;
}
/*线性表的插入:此插入为前插*/
int Insert_Sq(SqList &L,int Location,int num)
{
if(Location<1||Location>L.Length+1)
return 0;
if(L.Length==MAXSIZE)
return 0;
int i;
for(i=L.Length;i>Location-1;i--)
L.Ele[i]=L.Ele[i-1];
L.Ele[Location-1]=num;
++L.Length;
return 1;
}
/*线性表的删除*/
int Delete_Sq(SqList &L,int Location)
{
int i;
if(Location<1||Location>L.Length)
return 0;
for(i=Location-1;i<L.Length-1;i++)
L.Ele[i]=L.Ele[i+1];
--L.Length;
return 1;
}
int main()
{
SqList L;
Init_Sq(L);
Build_Sq(L);
Print_Sq(L);
printf("%d\n",Locate_Sq(L,3));
if(Insert_Sq(L,3,100))
Print_Sq(L);
if(Delete_Sq(L,3))
Print_Sq(L);
return 0;
}
线性表的顺寻存储
原创
©著作权归作者所有:来自51CTO博客作者mb64e477779bdae的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:线性表的链式存储
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
1.链式存储的线性表——C语言实现
本文是作者学习数据结构过程中在单链表基本运算代码实现时遇到问题并解决问题后的结果
单链表 基本运算 存储结构 代码实现 -
【数据结构】详细剖析线性表
【数据结构】第二章——线性表(9)总结了线性表的基本知识点,并对循序表与链表进行了比较
数据结构 C语言 线性表 顺序表 链表 -
线性表(1):线性表顺序存储结构的php实现
线性表的顺序存储结构 (sequential list),也叫顺序表的php实现
php 数据结构 线性表 顺序表 -
线性表的顺序存储——顺序表
之前我们讲了线性表, 本篇来阐述下线性表的顺序存储——顺序表定义线性表的顺序存储又称为顺序表, 它
数据结构 算法 顺序表 数据 sql -
线性表的顺序存储实现
SeqList.h头文件 SeqList.c
数据结构 编程开发