一、线性表的定义

线性表是具有相同特性数据元素的一个有限序列。该序列中所含元素的个数叫做线性表的长度,用n(n>0)表示。

二、线性表的存储结构

线性表的存储结构有顺序存储和链式存储两种。前者称为顺序表,后者称为链表(链表见下篇博客,这里介绍下顺序表)。

  1. 顺序表
    顺序表就是把线性表中的所有元素按照其逻辑顺序,一次存储到从指定的春初位置开始的一块连续的存储空间中。
  2. 顺序表的操作
    顺序表的基本操作有初始化,求指定位置元素,查找,插入,删除,输出等操作。以下用C++语言来实现这些操作。
#include <iostream>using namespace std;//顺序表结构体的定义
typedef struct Sqlist
{int data[20];int length;
}Sqlist;//顺序表的初始化
void initSqlist(int a[],int n,Sqlist &L)
{int i;for(i=0;i<n;i++){L.data[i]=a[i];L.length=n;}
}//求指定第p位元素
int getElem(Sqlist L,int p)
{return L.data[p-1];
}//顺序表中查找第一个值等于e的元素
int findElem(Sqlist L,int e)
{int i;for(i=0;i<L.length;i++){if(L.data[i]==e){return i+1;}}return -1;
}//顺序表中插入元素(第p位插入e元素)
void insertElem(Sqlist &L,int p,int e)
{int i;for(i=L.length-1;i>=p-1;i--){L.data[i+1]=L.data[i];}L.data[p-1]=e;L.length++;
}//顺序表的删除第p位元素
void deleElem(Sqlist &L,int p)
{int i;for(i=p-1;i<=L.length-1;i++){L.data[i]=L.data[i+1];}L.length--;
}//输出顺序表中的所有元素
void printList(Sqlist L)
{int i;cout<<"顺序表中有"<<L.length<<"个元素"<<endl;cout<<"分别为:";for(i=0;i<=L.length-1;i++){cout<<L.data[i]<<" ";}cout<<endl;
}
int main()
{Sqlist L;int a[7]={7,2,3,6,8,2,1};initSqlist(a,7,L);printList(L);cout<<"第二位元素为:"<<getElem(L,2)<<endl;cout<<"8元素的位置为:"<<findElem(L,8)<<endl;insertElem(L,3,0);cout<<"插入后";printList(L);deleElem(L,3);cout<<"删除后";printList(L);return 0;
}

运行结果如下图所示:

数据结构学习心得——顺序表相关推荐

  1. 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

    目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...

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

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

  3. 计算机数据结构英语作文,数据结构学习心得英语作文

    数据结构学习心得英语作文 Data structure is a study in computer programming and the object of the relationship be ...

  4. 数据结构之——《顺序表》

    数据结构之--<顺序表> 1.含义 2.分类 3.接口函数实现 4.顺序表的优缺点 1.含义 顺序表示用一段纹理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组 ...

  5. 【数据结构】【顺序表】 SqList *L与SqList*L的区别

    [数据结构][顺序表] SqList *&L与SqList*L的区别 显然,对于顺序表的抽象数据模型中的函数,其参数使用各不相同. SqList *&L的情况 它的意思是,L是对Lis ...

  6. 数据结构之动态顺序表(含游戏菜单)

    上一篇文章我们谈了数据结构的静态顺序表,以及实现了静态顺序表,具体可以看我的上一篇文章->>>数据结构之静态顺序表. 我们可以知道,静态顺序表的缺点是:  因为使用的是定长数组,所以 ...

  7. java数据结构实验一顺序表,java数据结构实验代码之升序顺序表

    java数据结构实验代码之升序顺序表 数据结构实验报告 学院:管理学院 班级:13电子商务(1)班 姓名:廖秋君 学号:3213004779 2014年 10月 23 日 目录 一.需求分析----- ...

  8. c语言编程文件中删除数据结构,C语言数据结构实战(一)顺序表的插入与删除

    今天学习了思成老师的数据结构实战教程 写了一个顺序表 插入和删除的操作 把源码共享给大家 一共包括list.c stu.h main.c list.h   .h文件是头文件 需要引入 具体的功能我都已 ...

  9. 数据结构第二课 | 顺序表(详解)

    前言:Hello!大家好,我是@每天都要敲代码,上次我们讲了数据结构第一课时间复杂度和空间复杂度:不明白的小伙伴可以学习一遍时间复杂度和空间复杂度传送门:今天让我们开始一起学习数据结构第二课啦---- ...

最新文章

  1. 解决bootstrap下的图片自适应问题
  2. Simple Transformer:用BERT、RoBERTa、XLNet、XLM和DistilBERT进行多类文本分类
  3. 日期相减 python_如果将excel的数字转化为日期(高级教程)
  4. C/C++ 中判断某一文件或目录是否存在
  5. 三国中最精辟的十句话
  6. java数据结构队列杨辉三角_数据结构之队列——输出杨辉三角形
  7. QDomNode读取xml
  8. Post与Get传值读取方法
  9. 一个完整的pytorch预训练实现图像分类,模型融合
  10. 从零开始使用webpack 4, Babel 7创建一个React项目
  11. PDF中如何删除文字
  12. java保龄球计分_自己写的java保龄球记分
  13. go down to用法
  14. vanilla_使用Vanilla JavaScript构建Cookie库
  15. CAS到底是怎么回事
  16. 华硕Prime B250M-K+英特尔i3 7100 3.9GHz+HD 630黑苹果EFI引导文件
  17. 9.谷歌浏览器最小字体尺寸
  18. 使用HTML5/CSS3制作便签贴
  19. 安卓app开发工具_手机APP是怎么开发的,需要学习哪些知识?
  20. 【干货教程】如何用Python优雅地绘制中国的地图

热门文章

  1. 【Java异常】Unrecognized SSL message, plaintext connection?
  2. java计算机毕业设计基于web的面向公众的食品安全知识系统源码+数据库+系统+lw文档+mybatis+运行部署
  3. 【SuperMap .Net 组件】三维自定义专题图
  4. proxy跨域不生效_配置proxy解决跨域问题
  5. Ubuntu18.04 安装 kaolin 库
  6. 社会名流问题算法详细复杂度分析
  7. Linux配置全局环境变量
  8. diy遥控飞机模型的基本要点-2
  9. Java日志正确使用姿势
  10. 为什么机器学习没有捷径