数据结构(C语言)——线性表(定义,基本操作)

  • 一、 线性表的定义
    • 二、线性表的基本操作
      • 什么时候要传入引用“==&==”————对参数的修改结果需要“==带回来==”
      • 为什么要实现数据结构的基本操作?

一、 线性表的定义

线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为
L=(a1,a2,a3,…,ai,ai+1,…,an)
注:每个数据元素所占空间相等,有次序。

几个概念:
(1)ai是线性表中的“第i个”元素线性表的位序 注:位序从1开始,数组从0开始
(2)a1是表头元素;an是表尾元素
除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一 个直接后继

二、线性表的基本操作

InitList(&L):初始化表。构造一个空的线性表L,分配内存空间。
DestroyList(&L):销毁操作。销毁线性表,并释放线性表L所占用的内存空间。

ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。
ListDelete(&l,i,&e):删除操作。删除表L中第i个位置的元素,并用e返回删除元素的值。

LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。
GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。
其他常用操作:
Length(L):求表长。返回线性表L的长度,即L中数据元素的个数。
PrintList(L):输出操作。按前后顺序输出线性表L的所有值。
Emrty(L):判空操作。若L为空表,则返回true,否则返回false。

Tips:
(1)对数据的操作(记忆思路)————创建销毁、增删改查
(2)C语言函数的定义————<返回值类型>函数名(<参数1类型>参数1,<参数2类型>参数2,…)
(3) 实际开发中,可根据实际需求定义其他的基本操作
(4)函数名和参数的形式、命名都可以改变
(5)什么时候要传入引用“&”————对参数的修改结果需要“带回来”

什么时候要传入引用“&”————对参数的修改结果需要“带回来”

#include<stdio.h>
void test(int x)
{x = 1024;printf("test函数内部 x=%d\n", x);
}int main()
{int x = 1;printf("调用test前 x=%d\n", x);test(x);printf("调用函数后 x=%d\n", x);//对参数的修改“没带回来”return 0;
}

在main函数中定义了一个变量x(初始值为1),再调用test函数,此时test(x)中的参数是x的一个复制品,所以test函数中改的是复制品的值,main函数中的x并不会改变。

传入引用“&”

#include<stdio.h>
void test(int & x)
{x = 1024;printf("test函数内部 x=%d\n", x);
}int main()
{int x = 1;printf("调用test前 x=%d\n", x);test(x);printf("调用函数后 x=%d\n", x);return 0;
}


对参数的修改结果“带回来”了。

为什么要实现数据结构的基本操作?

(1)团队合作编程,你定义的数据结构要让别人能够很方便的使用(封装)
(2)将常用的操作/运算封装成函数,避免重复工作,降低出错风险

Tips:比起学会“How”,更重要的是想明白“Why”。

数据结构(C语言)——线性表(定义,基本操作)相关推荐

  1. C语言数据结构-第二章线性表-电大

    第二章线性表--内容简介 本章将进入线性结构的学习. 线性结构是最简单.最常用的一种数据结构. 本章将学习线性表的定义.顺序和链式两种存储方式及相应存储结构上的运算实现.通过典型示例训练,掌握线性表的 ...

  2. (王道408考研数据结构)第二章线性表-第一节:线性表的定义和基本操作

    文章目录 一:线性表的定义 二:线性表的基本操作 一:线性表的定义 线性表(Linear List):零个或多个数据元素的有限序列 元素之间是有顺序的 若元素存在多个,则第一个元素无前驱,最后一个元素 ...

  3. 线性表的顺序存储 c语言表达,线性表的基本操作顺序存储(C语言).doc

    线性表的基本操作顺序存储(C语言) #include#include#include#define LIST_INIT_SIZE/*线性表存储空间初始分配量*/#define LISTINCREMEN ...

  4. 数据结构笔记--线性表定义与实现(Swift)

    数据结构笔记系列 数据结构笔记-两个有序链表合并成一个有序链表 线性表   线性表是最常用且最简单的一种数据结构,简言之,一个线性表是 n 个数据元素的有序序列. 特点 只有一个首结点和尾结点: 除首 ...

  5. C++数据结构实验---线性表的基本操作

    实验一 线性表的基本操作 1.实验内容与要求 理解线性表的概念 设计一个线性表,分别用顺序存储结构和链式存储结构实现,完成线性表的构造.查找.插入.删除.输出等基本操作. 掌握两种存储结构的优缺点以及 ...

  6. 实验一线性表的基本操作实现及其应用(JavaScript实现)

    实验一线性表的基本操作实现及其应用(JavaScript实现) 实验目的 熟练掌握线性表的结构特点, 掌握顺序表的基本操作. 巩固 C++相关的程序设计方法与技术. 学会使用顺序表解决实际问题. 实验 ...

  7. 数据结构与算法-2-链表的基本操作-查找

    数据结构与算法-2-链表的基本操作-查找(c语言) 本文是单链表的C语言实现方法,包括单链表的创建.插入.删除.修改.查找等基本操作. 链表结点的类型定义 /*链式存储结构的头结点*/ typedef ...

  8. Java版数据结构与算法——线性表

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  9. 线性表 (一) 线性表定义与线性表插入与删除

    线性表 第一节 线性表定义 文字语言描述线性表: 像排队一样,具有线一样性质的结构 线性表(List):由多个数据元素组成的有限序列 数学语言描述线性表: 若将线性表记为(a1,-,ai-1,ai,a ...

  10. 数据结构实验--基于线性表的图书信息管理系统

    本文是依据数据结构习题解析与实验指导(李冬梅)一书中的第一个实验–基于线性表的图书信息管理系统所写的. 之所以写这个,是因为这个实验不仅涉及到线性表的结构设计,还包括一些线性表的基本操作,个人认为,做 ...

最新文章

  1. android activity根节点addview_Activity问你4个问题,你敢回答吗?
  2. html5 测试视频
  3. Linux系统中退出vim的编辑器3种情况
  4. Hadoop基于Protocol Buffer的RPC实现代码分析-Server端--转载
  5. java 重构 if else_java中繁杂的if/else怎么重构
  6. getDeclaredField和getField的区别
  7. python做什么方向好_Python工程师的择业方向有哪些?你想好做什么工作了吗?
  8. CreateFile创建文件 writeFile 向文件中写入东西
  9. MS sql server 基础知识回顾(二)-表连接和子查询
  10. 动态规划 —— 求解通配符问题(wildcard)
  11. 电源大师课笔记 2.8
  12. 很简单的源码剖析-SpringBoot内嵌Tomcat原理
  13. Latex 三级子标题\subsubsection{xxx}后面内容不换行 要注意
  14. python .center用法_python之testcenter操作
  15. 华为认证云服务工程师(HCIA-Cloud Service)-- 练习题2
  16. Codeblocks-20.03下载及安装教程(面向小白的保姆级教程)
  17. 安装MySQL——压缩包安装
  18. 基于形状图像检索的曲率尺度空间描述符与傅立叶描述子的比较研究——18.07.14
  19. 4.23以上UE4 版本HTC-VIVE VR项目打包的注意事项
  20. 在ue4的CBL中查询(函数、变量)的几点提示

热门文章

  1. 投资理财之基金一、初识基金
  2. Mac下用Charles实现Android http和https抓包
  3. webStrom2018 版 下载 安装,license server破解 IntelliJ IDEA
  4. HTTP请求返回状态码
  5. 大数据实战|怎样实现大型电商热销榜?
  6. Linux-重命名命令rename
  7. 时间戳转换成标准日期
  8. 基于 DataLakeAnalytics 的数据湖实践
  9. 【python实验二】
  10. vs2022 error C1001:内部编译器错误