数据结构之线性表

数据结构之线性表

线性表

线性表是按顺序存储数据时常用的一种数据结构,线性表的常用操作:

  • 从线性表中获取某个元素(get)
  • 从线性表中添加某个元素(add)
  • 从线性表中删除某个元素(remove)
  • 从线性表中修改某个元素(set)
  • 从线性表中获取元素的个数(size)
  • 确定线性表是否为空(isEmpty)

实现数组有两种方式。一种是使用数组存储线性表的元素,一种是使用链式结构

数组线性表

  数组是动态创建的。如果元素的个数超过了数组的容量,就创建一个更大的新数组,并将当前数组中的元素复制到新数组中。
  使用数组的优缺点:我们能够快速的获取某个元素,还能通过数组的索引很容易修改某个元素。在做删除和添加操作中,会影响其它元素的位置的变动,所以效率比较低。

链表

  链表是由结点组成,每个结点都是动态创建的,用来存储一个元素。所有结点链成一个线性表
  结点的特点:结点中必须有个引用指向它的下一个结点,尾结点的引用指向的下一个结点为空。
  链表的优缺点:链表的添加和删除只需要改变这个元素相邻的上下两个结点的引用,效率很高。获取和修改某个元素则需要遍历链表,效率比较低。
  如果链表的结点只有一个引用指向下一个结点,因此该结点只能从头部向尾部遍历,则称单链表。
  如果链表的尾部结点的下一个结点指向头结点,则称循环单列表
  如果链表包含两个引用,一个指向下一个结点,一个指向上一个结点,头结点指向上一个结点为空,尾结点指向的下一个结点为空。则称双向链表
  如果链表包含 如果链表包含两个引用,一个指向下一个结点,一个指向上一个结点,头结点指向上一个结点为尾结点,尾结点指向的下一个结点为头结点。则称循环双向列表。

栈和队列

  栈可以看做是一种特殊的线性表,访问、插入和删除其中的元素只能在栈尾(栈顶)进行。由于栈只允许在栈顶进行插入和删除操作,所有用数组线性表来实现比链表效率更高。
  队列表示一个等待的线性表,元素只能从队列的末端插入,从开始端访问和删除。使用链表效率比较高。
  优先队列:在优先队列中元素被被赋予优先级,优先队列具有最高进先出的特征。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值