C语言线性表顺序存储结构实例详解

1、 什么是顺序存储结构?
用一段地址连续的存储单元依次存储线性表的数据元素。
2、线性表的顺序存储结构
#include<stdio.h>
#include<stdlib.h>
#define Max 80 //存储空间初始分配量
#define Increment 10 //存储空间分配增量
typedef struct
{
int *elem; // 存储空间基地址,此处为int型,视情况而定
int length; // 元素表当前长度
int size; //当亲分配的存储容量
}SqList;
3、顺序表的初始化操作是为顺序表分配一个预定大小的数组空间,并将顺序表的长度设为0。
<一>int InitList(SqList &L)
{
L.elem=(int *)malloc(Max*sizeof(int));
if(!L.elem)
return;//exit(0); //存储分配失败
L.length=0; //空表长度为0
L.size=Max; //初始存储容量
return Ok;
}
<二>int CreatList(SqList &L)
{
L.elem=(int *)malloc(Max*sizeof(int));
if(!L.emle)
return;//exit(0);
L.length=0;
L.size=Max;
printf("请输入表的长度:");
scanf("%d",&L.length);
printf("请输入%d个数:",L.length);
for(i=0;i<L.length;i++)
scanf("%d",&L.elem[i]);
}
4.获取元素操作:将线性表中的第i个位置元素值位置返回
int GetElem(SqList &L,int i,int e)
{
// 1 <= i <= L.length
if( i <1 || i > L.length)
return ERROR;
*e=L.elem[i-1];
return Ok;
}
5线性表的插入操作
“
int Insert(SqList &L)
{
int *_new;
int i;
int e;
printf(“输入要插入的位置及其元素:”);
scanf(“%d %d”,&i,&e);
if(i<1||i>L.length)
{
printf(“插入的位置不合法!”);
return ERROR;
}
if(L.length>=L.size) //当前空间已满,增加分配
{
_new=(int)malloc(L.elem,(L.length+Increment)*sizeof(int));
if(!_new) //存储分配失败
return; //exit(0);
L.elem=_new; //新基址
L.size=L.size+Increment; //增加存储容量
}
q=&(L.elem[i-1]); //q为插入的位置
for(p=&(L.elem(L.length-1));p>=q;–p) //插入后元素右移
*q=e; //插入e
++L.length; //长度加一
return OK;
}
6、删除元素```
int ListDelete(SqList &L,int i,int *e)
{
int k;
if(L.length==0) //线性表为空
return ERROR;
if(i<1||i>L.length) //插入不正确
return ERROR;
*e=L.elem[i-1];
if(i<L.length) //如果插入不是最后的位置
{
for(k=i;k<L.length;k++)
L.elem[k-1]=L.elem[k];
}
L.length--
return OK;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C语言线性表顺序存储结构
# C语言数组存储
# C语言线性表的顺序表示与实现实例详解
# C语言编程数据结构线性表之顺序表和链表原理分析
# C语言 数据结构链表的实例(十九种操作)
# 用C语言举例讲解数据结构中的算法复杂度结与顺序表
# C语言数据结构线性表教程示例详解
# 线性表
# 请输入
# 存储容量
# 设为
# 希望能
# 并将
# 谢谢大家
# 而定
# 不正确
# 已满
# 为空
# 不合法
# 长度为
# Increment
# Max
# int
# gt
# struct
# typedef
# define
相关文章:
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
深圳网站制作案例,网页的相关名词有哪些?
七夕网站制作视频,七夕大促活动怎么报名?
建站之星如何实现PC+手机+微信网站五合一建站?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
香港服务器租用费用高吗?如何避免常见误区?
如何选择PHP开源工具快速搭建网站?
建站之星伪静态规则如何设置?
建站主机是什么?如何选择适合的建站主机?
网站制作公司排行榜,四大门户网站排名?
,在苏州找工作,上哪个网站比较好?
外贸公司网站制作哪家好,maersk船公司官网?
宁波免费建站如何选择可靠模板与平台?
建站之星后台密码遗忘或太弱?如何重置与强化?
如何访问已购建站主机并解决登录问题?
焦点电影公司作品,电影焦点结局是什么?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何在阿里云ECS服务器部署织梦CMS网站?
如何制作一个表白网站视频,关于勇敢表白的小标题?
如何快速搭建二级域名独立网站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何在IIS中新建站点并配置端口与物理路径?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
建站OpenVZ教程与优化策略:配置指南与性能提升
建站之星备案流程有哪些注意事项?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
建站主机助手选型指南:2025年热门推荐与高效部署技巧
C++如何编写函数模板?(泛型编程入门)
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何用y主机助手快速搭建网站?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何高效完成独享虚拟主机建站?
北京网站制作网页,网站升级改版需要多久?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何零基础开发自助建站系统?完整教程解析
如何登录建站主机?访问步骤全解析
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
c# 在ASP.NET Core中管理和取消后台任务
网站制作大概多少钱一个,做一个平台网站大概多少钱?
如何快速使用云服务器搭建个人网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
大同网页,大同瑞慈医院官网?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何用wdcp快速搭建高效网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。