计算机组成原理 张军,计算机组成原理真题解析.ppt

计算机组成原理真题解析

第四章 线性表、堆栈和队列 第四章 线性表、堆栈和队列 4.1 线性表的定义和基本操作 4.2 线性表的存储结构 4.3 堆栈和队列 4.1 线性表的定义和基本操作 4.1.1 线性表的定义 [例1] 英文字母表 ( A,B,C,……,Z ) 整数序列 ( 1,78,9,12,10) [例2] 某班学生健康情况登记表。 学号 姓名 性别 年龄 健康情况 01 张军 男 18 一般 02 陈红 女 17 良好 03 陈军 男 19 神经衰弱 … … … … … 线性表定义:一个线性表是由零个或多个具有相同类型的结点组成的有序集合。用(a0,a1,…,an-1)来表示一个线性表。当n>0时,a0称为表的始结点,an-1称为表的终结点,当n=0时,线性表中有零个结点,称为空表。 线性表的逻辑结构:线性结构 线性表的操作 (1)随机存取:存取下标为k的结点。 (2)插入:在下标为k的结点前(或后) 插入一个新结点 (3)删除:删除下标为k的结点。 (4)查找:寻觅具有特定域值的结点。 (5)归并、分拆、复制、计数、排序。 第四章 线性表、堆栈和队列 4.2 线性表的存储结构 4.2.1 顺序存储结构 4.2.2 链接存储结构--单链表 4.2.3 循环链表 4.2.4 双向循环链表 4.2 线性表的存储结构 4.2 线性表的存储结构 4.2.1 顺序存储结构 顺序存储:用一组连续的存储空间依次存储线性表的元素。 实现顺序存储的最有效方法是使用一维数组。例如 :线性表(a0,a1 ,… , an-1)。可以使用一个数组a[n]来存放此线性表。 Loc(a[k])= Loc (a[0]) + k*c 顺序存储的线性表的基本运算 1、插入 [例] 在顺序表(12,13,21,24,28,30,42,77) 中,插入元素 25。 问题:此时,线性表的逻辑结构 发生什么变化? 位置关系发生变化 长度增1 在下标为k的结点后插入一个新结点 //ADL描述 算法 Insert(A,n,k,x) Insert1[k是否合法] IF (k<0 OR k>n) THEN PRINT(“overflow”) ELSE ( FOR i= n TO k+1 STEP -1 DO A[i+1] ? A[i]. A[k+1] ? x. n ? n+1.). ▌ 2、删除 [例] 在顺序表(12,13,21,24,28,30,42,77) 中,删除元素 24。 删除下标为k的结点 //ADL描述  算法 Delete(A,n,k) Delete1[检查k是否合法] IF (k<1 OR k>n) THEN PRINT(“error”) ELSE ( FOR i=k+1 TO n DO A[i-1] ? A[i]. n ?n-1.) ▌ ● 结论: 线性表的顺序存储结构优点:空间利用率高,简单、易于实现,可以随机访问表中任一元素,存取速度快。 缺点:插入和删除结点,要调整一批节点的地址。 问题:由于线性表中元素的数目可以改变,因此定义数组时要做如何的考虑呢? 定义足够大的数组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值