数据结构与算法分析之线性表

最近面试了不少公司,发现多数公司要提问数据结构与算法分析,所以这段期间又简单回顾了下数据结构与算法。
  1. 列表内容

    简单来说呢 程序 = 数据结构 + 算法 只不过是实现的语言不同而已,有人说,学习数据结构没一点用,工作中一点用也没有,这点仁者见仁智者见智,现在的大部分公司是业务为王,业务理解透了,能干就干,干不了滚蛋,反正到现在我也没见哪个公司注重培养员工的,可能博主我去的公司太lou

    回归到正题,数据结构与算法,可以拆分成三个部分,数据+结构+算法。

    数据:数据是数据元素(也可以叫数据对象)的集合,

    结构:结构大致可以分为两个。一个是关系结构,叫逻辑结构,一个是存储结构,叫物理结构。

    算法:实现的过程,简单理解就是找关系。

    举个例子: 一个笼子里面有鸡跟兔子两种动物,一共15只动物,40条腿,问鸡跟兔子各有多少只。
    从理科生的思维来看: 1 建立数学模型,2 分析对象,3 找关系。
    建立数学模型 一共 15只动物,40条腿。分析对象 鸡 跟 兔子 。找关系 设 鸡为x,兔子为y。2x+4y=40,x+y=15. x=10,y=5.
    任何一个算法都可以用抽象数据类型来表示,既 ADT:
    ADT ={
    D,
    S,
    P
    }
    其中,d为数据,s为关系,p为操作。


  逻辑结构:包括线性表,树,图形等。
  存储结构:顺序表,链表。

线性表

线性表包括:顺序表,链表(单向链表,循环链表,双向链表,双向循环链表)

顺序表:

这里写图片描述
顺序表:在存储空间里是一组连续的序列的集合。(a0,a1,a2,a3,a4…….an) 如果知道一个顺序表的基地址的话,就可以算出任何一个元素在顺序表中的地址,数学函数为 an的地址=a0的地址 * nb。 b指的是相邻的的两个数据元素的空间差值。
这里写图片描述
顺序表的crud:这里我只说一个u 例子 在 ai 跟ai+1 处插入一个数据元素m。算法大致为,先把ai后面的数据元素统一往后移动一个位置。既 现在的ai+2=ai+1 一定要从后往前遍历。这样呢ai+1=m 插入,

单项链表

这里写图片描述

链表 :内存空间一组不连续的数据元素的集合,第一个数据元素无前驱,最后一个数据元素无后继。单个数据元素记录的是相邻的数据元素的地址,下面一个图片展示其关系这里写图片描述
循环链表呢:就是把an的后继指向a0,这叫循环。

双向链表

这里写图片描述
同理:双向循环链表的示意图就是a0跟a3连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值