//定义线性表
#define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE]; //这是数组的长度,从0开始,也就是最大长度
int length; //这是线性表的长度,表示线性表已经存储了多少个元素 }SqList;
/*
**************************
**************************
*/ //返回线性表L的元素
typedef int Status;
Status GetElem1 (SqList L,int i,ElemType *e)
{
if (L.length== || i<i || i>L.length)
return -; *e = L.data[i-];
return ;
} /*
**************************
**************************
*/ //元素插入线性表
Status ListInsert (SqList *L,int i,ElemType e)
{
int k;
if (L->length == MAXSIZE) //表示线性表的最大长度已经等于数组的长度,线性表已经满
return -; if(i < || i > L->length+) //表示要插入的位置i 不在线性表的范围
return -; if (i <= L->length) //若要插入的位置不在线性表的尾端
for (k = L->length - ;k >= i- ;k--) //就是插入位置后面的元素一个个往后面挪出一个位置,先是线性表最后一个元素挪
L->data[k+] = L->data[k]; L->data[i-] = e; // 插入的i是相对于线性表来说的下标从1开始,data是数组,下标从0开始,所以辅助到i-1上
L->length++; //表示线性表的长度加上1
return ;
} /*
**************************
**************************
*/ //元素删除
Status ListDelete(SqList *L,int i,ElemType *e)
{
int k;
if (L->length ==) //判断线性表是否为空
return -;
if (i>L->length || i<) //判断要删除的元素是否在线性表中
return -;
*e = L->data [i-]; //先把数组的数组拿出来赋值给e if (i< L->length)
for (k=i;k<L->length;k++) //直接把药删除的元素后面的元素直接往前移动
L->data[k-]=L->data[k]; L ->length --; //最后一步是把线性表的长度减去1 数组的长度不用减,英文已经用maxsize定义了。 } int main()
{
return ;
}

简单的线性表增删,本人是菜鸟,有什么问题请评论,我真的希望大家能给点指点,谁也是从菜鸟开始的,

做技术的没有什么好嘲笑的,技术的东西是永远学不完的,日新月异。

技术靠一点一点积累的,大牛也是這样,

希望我也能加油。

c语言描述简单的线性表,获取元素,删除元素,的更多相关文章

  1. c语言数据结构学习心得——线性表

    线性表:具有相同数据类型的n(n>0)个数据元素的有限序列. 主要有顺序存储和链式存储. 顺序存储: 特点:地址连续,随机/存取,顺序存储. 建立:首地址/存储空间大小(数组),表长. 方式:静 ...

  2. 基于c语言数据结构+严蔚敏——线性表章节源码,利用Codeblocks编译通过

    白天没屌事,那我们就来玩玩线性表的实现吧,快要失业了,没饭吃了咋整哦 题目描述假设利用两个线性表LA和LB分别表示两个集合A和B(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A∪B ...

  3. C语言数据结构——第二章 线性表

    二.线性表 2.1-线性表简介 2.1.1-线性表的定义 线性表是由若干个相同特性的数据元素组成的有限序列.若该线性表不包含任何元素,则称为空表,此时长度为0,当线性表不为空时,表中的元素的个数就是线 ...

  4. C++编程练习(1)----“实现简单的线性表的顺序存储结构“

    线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素. 故可以用数组来实现顺序存储结构. 用C++编写的利用数组实现简单的读取.插入和删除功能的线性表. #include< ...

  5. c++简单编写线性表(实验)

    哇 好久没更博客了  因为从上次更文到现在为止,我一直在学c#,然后也觉得没什么太大的东西想写在博客上, 总之这次就简单的传一下学校安排的数据结构的实验,我还是学生,是新手,希望能继续跟大家一起学习, ...

  6. C语言 严蔚敏数据结构 线性表之链表实现

    博主最近在考成都大学皇家计算机科学与技术专业,复习专业课数据结构,正好学习到线性结构中的线性表用链表这种存储结构来实现. 首先,数据结构包括1.数据的操作2.逻辑结构3.存储结构(数据结构三要素. 直 ...

  7. C++编程练习(2)----“实现简单的线性表的链式存储结构“

    单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素. 对于查找操作,单链表的时间复杂度为O(n). 对于插入和删除操作,单链表在确定位置后,插入和删除时间仅为O(1). 单链表不需要分配存储 ...

  8. 顺序表添加与删除元素以及 php实现顺序表实例

    对顺序表的操作,添加与删除元素. 增加元素 如下图所示  对顺序列表 Li [1328,693,2529,254]  添加一个元素 111 ,有三种方式: a)尾部端插入元素,时间复杂度O(1);  ...

  9. go语言从零学起(二)--list循环删除元素(转载)

    本篇系转载 在使用go的container/list的package时,你可能会无意间踩一个小坑,那就是list的循环删除元素. list删除元素,直观写下来的代码如下: package main i ...

随机推荐

  1. java ScriptEngine 使用 (支持JavaScript脚本,eval()函数等)

    Java SE 6最引人注目的新功能之一就是内嵌了脚本支持.在默认情况下,Java SE 6只支持JavaScript,但这并不以为着Java SE 6只能支持JavaScript.在Java SE ...

  2. PLSQL_性能优化系列08_Oracle Insert / Direct Insert性能优化

    2014-09-25 Created By BaoXinjian

  3. linux下sublime配置c++11编译环境

    Tools->Build System->New Build System { "cmd": ["g++", "-std=c++11&qu ...

  4. 图片_ _Android有效解决加载大图片时内存溢出的问题 2

    Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ...

  5. Installing Redis on Ubuntu

    wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable sudo ...

  6. linux中deb怎样安装

    deb是Debian Linux的安装格式,跟Red Hat的rpm非常相似,最基本的安装命令是:dpkg -i file.debdpkg 是Debian Package的简写,是为Debian 专门 ...

  7. SPREAD_NET6

    SPREAD_NET6 下载地址 http://www.gcpowertools.com.cn/downloads/trial/Spread.NET/EN_SPREAD_NET6_SETUP_RA_6 ...

  8. Xcode5.0使用iOS6.1SDK及模拟器

    最近项目中,介于测试人员提出的问题,有些情况只在ios6的设备上才能显现,而本机的xcode已升级到最新的5.0,这可如何是好呢,在网上搜索了一番,找到如下方法解决此问题: 1.打开xcode5.0的 ...

  9. Microsoft visual studio中文字样输出

    解决办法: 可以尝试下通过: 1.file->高级保存选项-> 2.工具->选项->文本编辑器->自动检测不带签名的UTF-8编码

  10. mybatis 入门二

    1.新建一个java项目 2.加入mybatis.jar和mysql.jar 3.加mybatis的配置文件 mybatis.xml <?xml version="1.0" ...