您所在位置: 网站首页 / 文档列表 / Java / 文档详情
java数据结构_线性表 武汉大学.ppt 立即下载
上传人:yy****24 上传时间:2024-09-04 格式:PPT 页数:57 大小:2.1MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

java数据结构_线性表 武汉大学.ppt

java数据结构_线性表武汉大学.ppt

预览

免费试读已结束,剩余 47 页请下载文档后查看

16 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第二章、线性表逻辑结构唯一存储结构不唯一运算的实现依赖于存储结构线性表线性表类型的定义(a1,a2,…ai-1,ai,ai+1,…,an)例1分析26个英文字母组成的英文表a1练:判断下列叙述的正误:3、线性表的操作BACK进一步说明:(1)线性表的基本操作根据实际应用是而定;(2)复杂的操作可以通过基本操作的组合来实现;(3)对不同的应用,操作的接口可能不同。2.2线性表的顺序存储和实现2.2.1顺序表的顺序存储表示线性表顺序存储特点:线性表的顺序存储结构示意图一个一维数组M,下标的范围是0到9,每个数组元素用相邻的5个字节存储。存储器按字节编址,设存储数组元素M[0]的第一个字节的地址是98,则M[3]的第一个字节的地址是2.2.2顺序表的实现2)顺序表的操作实现操作接口publicbooleanadd(intindex,Eelement);//在第index个位置插入对象element插入前:(a0,…,ai-1,ai,…,an-1)插入后:(a0,…,ai-1,item,ai,…,an-1)插入操作图示33插入:在顺序表的第index个位置插入一个元素JAVA具体实现:publicbooleanadd(intindex,Eelement){if(element==null)returnfalse;//不能插入nullif(this.n==table.length){//若数组满,则需要扩充顺序表容量Object[]temp=this.table;this.table=newObject[temp.length*2];for(inti=0;i<temp.length;i++)//复制数组元素this.table[i]=temp[i];}if(index<0)index=0;//下标容错if(index>this.n)index=this.n;for(intj=this.n-1;j>=index;j--)//元素后移this.table[j+1]=this.table[j];this.table[index]=element;this.n++;returntrue;}操作接口publicEremove(intindexx)删除前:(a1,…,ai-1,ai,ai+1,…,an)删除后:(a1,…,ai-1,ai+1,…,an)删除操作图示例:(35,33,12,24,42),删除index=2的数据元素。实现步骤:获得index位置上要删除的元素值;将位置为index至this.n-1的元素向前移动一个位置;表长减1。注意:事先需要判断,删除位置index是否合法?应当有0≤index<this.nJAVA具体实现:publicEremove(intindex){if(this.n!=0&&index>=0&&index<this.n){Eold=(E)this.table[index];for(intj=index;j<this.n-1;j++)//元素前移this.table[j]=this.table[j+1];this.table[this.n-1]=null;this.n--;returnold;}returnnull;}5)按位查找实现2.2.3顺序表的算法效率分析讨论2:若在长度为n的线性表上删除第i位元素,向前移动元素的次数f(n)为:f(n)=线性表顺序存储结构特点:逻辑关系上相邻的两个元素在物理存储位置上也相邻;优点:可以随机存取表中任一元素;缺点:(1)在插入,删除某一元素时,平均要移动一半元素,平均时间复杂度O(n)。⑵表的容量难以确定,表的容量难以扩充;⑶易造成存储空间的碎片。为克服这些缺点,我们引入另一种存储形式:链式存储。2.3线性表的链式存储和实现链表:线性表的链接存储结构。存储思想:用一组任意的存储单元存放线性表的元素。链表是由若干结点构成的;每个结点结构有两个部分组成:2、有关的术语头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志或表长等信息;首元结点是指链表中存储线性表第一个数据元素a1。上例链表的逻辑结构示意图有以下两种形式:答:publicclassNode<E>{//单链表结点类publicEdata;//数据域,保存数据元素publicNode<E>next;//地址域,引用后继结点2.3.2单链表的操作实现1、单链表的遍历操作接口:基本步骤:从首结点开始,一个一个输出至尾结点。算法实现:2、单链表插入(1)空表插入/头插入如何
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

java数据结构_线性表 武汉大学

文档大小:2.1MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用