数据结构与算法分析-线性表与顺序表

线性表(Liner List):由叫做元素的数据项组成的一种序列

特征:可以不包含任何元素(空表)

每个元素都有自己的位置

元素之间有如下关系:如果元素个数是n,且n>0,则x[0]是第一个元素,x[n

-1]是最后一个元素。

当0<k<n-1时,x[k]在x[k+1]前在x[k-1]后。

x[0]x[n-1]分别称为表头、表尾

除了表头没有前驱,表尾没有后继以外,其余表项都有一个直接前去和一个直接后继。

在线性表上可以进行的操作:

修改、插入、删除、组合线性表、拆分、排序、得到个数、搜索

根据对插入删除访问操作限制,线性表可分为以下几种:

1.list:允许在任何位置插入删除访问元素

2.stack(栈)只允许在线性表的表尾操作(也成为栈底)

3.queue(队列):只允许在一端插入(队尾),另一端删除或访问(队头)

4.deque(双端队列):只允许在表头或表尾操作。

实现方式:1.元素时连续存放的(数组)

2.元素之间是离散存放的(链表)

单向链表只能获得直接后继而不能获得直接前驱,而数组中的数据通过物理上的连续存放可以获得其逻辑关系。

不同应用可以规定不同的ADT。

插入的新元素在currpos 即当前位置插入。当前指针可由setFitst next等操作移位。append函数将在表尾插入。

List的实现--基于数组的实现:

1.插入 Θ(n)curr往后所有的都后移一位,然后将item赋值给curr

2.删除,curr往后所有的都向前一位,Θ(n)

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值