• 计算机软件基础——存储结构(1)


    线性表:具有相同线性结构的数据元素所构成的一个有限的序列(反应逻辑关系)

      。先看逻辑结构,再看存储结构

     研究方式:

          逻辑结构

          存储结构

          常用算法

    一、线性表及其顺序存储结构

    顺序存储结构:一组连续的存储单元依次存储线性表的每个元素(eg;数组)

    特点:逻辑相邻,物理相邻

      * 采用顺序存储结构的线性表通常称为顺序表  

    (一)、线性表的基本运算操作:

    1、初始化,设置一个空表

    2、求长度,返回表中的元素个数

    3、求序号为 i 的元素值

    4、求值为x的元素值在表中的位置

    5、在第 i 个(指定)元素前面插入元素x

    6、删除表中的第 i 个元素 ;删除给定值x的元素

    7、取出 ai 元素的前趋与后继

    8、合并、拆分、复制、排序、逆转、判空等

    Zu:线性表的序号统一从 1 开始,数组下标是从0开始。

    (二)、插入运算的异常处理:

    1、存储空间已满时为 上溢 错误,不能插入,算法结束

    2、i > n 时,最后一个元素之后插入

    3、i < 1 时,第一个元素之前插入(n代表有效位数) 

    (三)、删除运算的异常处理:

    1、i  < 1 或 i > n 时,认为删除无效

    2、线性表为空时为 下溢 错误,不能删除,算法结束

    (四)、顺序表操作注意事项

    1、表结构的定义:(即存储结构的定义)

      。可以定义为 局部 、全局变量,也可以动态申请空间。

      。最大表空间的定义。

    2、表溢出和非法位置的反馈提示

    3、节点移动,长度修改

    二、栈(顺序结构)

    1、定义:限定在一端进行插入删除的线性表。

    栈逻辑特征:FILO  first in last out

          LIFO  last in first out

    2、概念 : top     bottom     push   pop

         栈顶     栈底    入栈   出栈

    一般,允许插入删除操作的一端称为栈顶,因此,栈顶的位置是动态变化的。

    栈用数组表示,(数组的下标小对应低地址)。

    3、影响栈的算法的要素:

    1)、数组的隐含属性(起始下标、元素个数)

    2)、栈的生长方向(低——>高;高——>低)

    3)、栈顶、栈底的定义形式

    4、顺序栈的基本运算

    1)、初始化空栈

    2)、判断栈空( *top = 0),判断栈满( *top = m)

    3)、入栈( * top =  *top + 1 ;),退栈

    4)、复制栈顶元素

    5、栈的应用

    逆序、重整序、回溯问题求解、递归过程的实现。

      

    7、应用

    1)、中缀表达式

    设立两个堆栈:

          OPND:存操作数

          OPTR:存操作符

    2)、背包问题

  • 相关阅读:
    [ZZ]为什么选择傲游
    重新启用ClustrMaps记数
    Ubuntu 10.4的wubi安装BUG修正了
    [转载]关于C++,我觉得好的设计法则
    迅雷5.9.19.1390会员破解与快车旋风专用链补丁
    VS2010 Ultimate英文版下载
    不会“思维”只会“批判”,谨防网络舆论“怨妇化”
    游戏制作人(调侃)
    Visual Studio 2010 Beta安装感受
    msdev & devenv 的命令行用法
  • 原文地址:https://www.cnblogs.com/gti2baby/p/11320312.html
Copyright © 2020-2023  润新知