2021-01-14线性表的定义和一些基本操作

本人大一新生(非计算机专业)上学期跟着学校的安排学习了c语言,可惜院系并不准备让我们继续学习数据结构,因此趁着寒假时间我打算自学一下数据结构,并把一些总结发到我的博客上,出现的一些错误希望各位大佬能够提出。而这篇文章就从最基础的线性表谈起。

系列文章目录



一、线性表的定义

(1.)线性表(list)是零个或者是多个元素的有限序列。

首先呢我们要强调的是序列,只有是有序的序列才能够帮助我们用计算机完成更加复杂的任务,其次线性表强调是有限的,就如数组一样它们的元素都是有限的,系统好为它们分配合适的内存单元,对于我们所认知的无限的序列往往只存在数学的概念当中,在计算机中并不存在。

同时数据元素又被称为节点,节点的个数也就是表长了。
(2.)

a1
a2
.....
ai-1
ai
......
an

其中呢ai被称为ai-1的后继元素,当然反过来就是ai-1就是ai的前驱元素了。
而线性表表的个数n定义为线性表的长度,当n等于0的时候,称为空表。
ai表示第i个元素,称i为数据元素ai中线性表中的位序。

注意 :在比较复杂的线性表当中呢,一个数据元素可以由若干个数据项组成。就如班级成绩单一样,每一个人所有的成绩信息就是一个数据元素,你的每一科的成绩就是若干的数据项

二、线性表的抽象数据类型

(1.)线性表的数据对象集合为{a1,a2,…an},每一个元素的类型均为DataType。数据元素之间的关系是一对一的关系。
(2)线性表的八大基本操作

Initiate(*L)//初始化,建立一个全新的空线性表L
ListEmpty(L)// 判断线性表是否为空表如果是返回true(1), 否返回false(0)
ClearList(*L);//将线性表清空
ListLength(L)//求表长
GetElem(L,i,*e)//读表元素,将第i位置上的元素返回给e
LocateElem(L,i)//定位
ListInsert(*L,i,e)//插入
ListDelete(*L,i,*e)//删除第i个元素,并用e返回其值

例子:实现线性表的集合A和B的并集操作
代码如下:

void union (List *La,List Lb)
{
 int la_len,lb_len,i;
 ElemType e;//声明另外一个结点;
 la_len = listLength(La);
 lb_len = listLength(Lb);
 for(int i=1;i<lb_len;i++{
GetElem (Lb,i,*e);
if(!LocateElem(La,e))
ListInsert(*La,++la_len,e);
}

}

总结


:以上就是今天要讲的内容,简单的介绍类一些线性表的概念和操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

おもいね

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值