数据结构——2.1线性表及其实现

本文详细介绍了线性表的概念,包括其顺序存储和链式存储两种实现方式,以及在线性表中进行查找、插入和删除操作的具体实现。顺序存储中,通过数组或仅存储非零项的方式表示线性表,而链式存储则通过链表结构灵活处理元素。文章还探讨了不同操作的时间复杂度,并对比了顺序存储与链式存储的优劣。
摘要由CSDN通过智能技术生成

一、引言

线性结构是数据结构里面最基础最简单的一种数据结构类型,最典型的一种叫做线性表
举个例子:
如何用程序设计语言来表示这样的一个一元多项式及其相应的操作运算呢?
在这里插入图片描述

  1. 顺序存储结构直接表示
    用一个数组存储第i项的系数ai,而指数对应这个分量的下标
    在这里插入图片描述
    这样带来的问题是什么呢?假如我要表示x的两千次方,数组的大小就需要2001项,而其中很多都是含有0的项,这样就造成了存储空间的浪费
    而且在做加法的时候,需要把数组做一个循环,需要从0开始加到2000,实际上很多计算都是在加一些无效的0
  2. 顺序存储结构表示非零项
    将多项式看成是一个(ai, i)二元组的集合,这样,每一个分量就不单单只包含系数了,还包含了指数
    这里要注意的是:
    按指数的大小进行排列,在做加法的时候就能够达到比较快的运算速度
  3. 用链表结构来存储非零项
    链表中的每个结点存储多项式中的一个非零项,包括系数和指数两个数据域一个指针域
    在这里插入图片描述

在这里插入图片描述
在做加法运算的时候,就和2中两个数组的运算是一样的:
分别指向多项式的头,然后比较指数大小,大的输出,相等的系数相加

总结

  • 用数组实现有两种方法:一个是直接表示,另一个是只表示非零项 还有就是可以用链表实现
  • 同一个问题可以有不同的表示(存储)方法

二、线性表的概念

  1. 线性表:
  • 表中元素的个数称为线性表的长度
  • 线性表没有元素时,称为空表
  • 表的起始位置称为表头,表的结束位置称为表尾
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值