菜单
  

    3.2 线性表
    此模块包括:链表模型、链表操作三个部分,分别对应表的算法演示。
    在链表操作的实现中,此程序是用一组地址连续的存储单位依次存储线性表的数据元素,以此实现线性表的顺序存储结构,流程图如图2所示。


    图2顺序表流程图
    线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,为了表示每个数据元素与其直接后继数据元素之间的逻辑关系,对数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息。根据以上思想,流程图如下页图3所示。


        是
                                                     

                               

    图3链表流程图
    在链表操作的实现中,此程序是链表的基本操作模型,在这种存储结构中,容易实现线性表的某些操作, 在此程序中,重点实现了链表的插入和删除。
    假设要在线性表的两个数据元素a和b之间插入一个数据元素x,已知p为其链表存储结构中指向接点a的指针,如图4(a)所示。

    P                                      p





    (a)                                          (b)
    图4在单链表中插入结点时指针变化状况
    为插入数据元素x,首先要生成一个数据域为x的结点,然后插入在单链表中。根据插入操作的逻辑定义,还需要修改结点a中的指针域,令其指向结点x,而结点x中的指针域应指向结点b,从而实现3个元素a、b和x之间逻辑关系的变化。插入后的单链表如图4(b)所示。
    反之,在线性表中删除元素b时,为在单链表中实现元素a、b和c之间的逻辑关系的变化,仅需要修改结点a中的指针域即可。
    3.3堆栈及队列模块的设计
    此模块包括:基本堆栈、基本队列两个部分,分别对应堆栈和队列的算法演示。
    3.3.1栈模块设计
    栈是限定仅在表尾进行插入或删除操作的线性表。表尾称为栈顶,表头称为栈底,不含元素的空表称空栈。栈的修改是按后进先出的原则进行的,因此,栈又称为先进后出的线性表(简称FILO结构),它的特点可用图5来形象地表示。
                                   进                      出
                          栈顶
    、、、

                          栈底
    图5栈模块
    3.3.1队列模块设计
    和栈相反,队列是一种先进先出(FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端本叫做队尾(rear),允许删除的一端则称为队头(front)。假设队列为Q=(a1,a2,…,an),那么,a1就是队头元素,an则是队尾元素。队列中的元素是按照a1,a2,…,an的顺序进入的,退出队列也只能按照这个次序依次退出。下图6是队列的示意图。
  1. 上一篇:ASP.net在线查分系统的设计与实现+ER图+功能模块图
  2. 下一篇:ASP.net在线教育系统设计与实现+需求分析+数据库设计
  1. 基于MATLAB的图像增强算法设计

  2. 基于Kinect的手势跟踪与识别算法设计

  3. 基于VC++的GIS矢量图形系统开发

  4. JAVA+MYSQL《算法与数据结构...

  5. 神经网络算法在核素识别中的应用研究

  6. VC++的高速数据采集系统的软件设计

  7. 人脸图像品质评估算法设计与实现

  8. 乳业同业并购式全产业链...

  9. 大众媒体对公共政策制定的影响

  10. 河岸冲刷和泥沙淤积的监测国内外研究现状

  11. 电站锅炉暖风器设计任务书

  12. 酸性水汽提装置总汽提塔设计+CAD图纸

  13. java+mysql车辆管理系统的设计+源代码

  14. 十二层带中心支撑钢结构...

  15. 中考体育项目与体育教学合理结合的研究

  16. 杂拟谷盗体内共生菌沃尔...

  17. 当代大学生慈善意识研究+文献综述

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回