数据结构笔记(三)

线性结构

          ——线性表示及其实现

一.多项式的表示(项数n和各项系数 数据结构笔记(三),指数i)

     法一:顺序存储结构直接表示——数组各分量对应多项式各项,a[i]: 项数据结构笔记(三)的系数数据结构笔记(三)

           eg:    数据结构笔记(三)       

        下标i      0           1             2         3               4            5     .......
          a[i]      1     0   -3 0 0 4

          

    法二:顺序存储结构表示非零项——将一个多项式看成是一个(数据结构笔记(三),i)二元组集合,用结构数组表示,数组分量是由系数数据结构笔记(三)和指                                                                数i 组成的结构 ,对应一个非零项

   下标i          0                    1                      2                   ......
系数数据结构笔记(三) 4 -3 1  
指数i 5 2 0  

                  * 按指数大小有序存储

     法三:链表结构存储非零项 —— 链表中每个结点存储多项式中的一个非零项,包括系数和指数两个数据域以及一个指针域

系数 指数 指针(link)

    eg:数据结构笔记(三)   数据结构笔记(三)

二.什么是线性表?

    由同类型数据元素构成的有序序列的线性结构

  1.  抽象数据类型描述——  类型名称:线性表(List )

                                      数据对象集:线性表是n个元素构成的有序序列数据结构笔记(三)

                                              操作集:数据结构笔记(三),整数i表示位置,元素数据结构笔记(三),基本操作主要有:

                                                         1.ListMakeEmpty():初始化一个空线性表L    

                                                         2.ElementTyp FindKth(int K,list L):根据位序    K,返回相应元素

                                                         3. int Find(ElementType X,List L):  在线性表L中查找X第一次出现的位置

                                                         4.Void Insert(Element Type X,int i,List L):在位序i前 插入一个新元素X                 

    2. 顺序存储实现:利用数组的连续存储空间顺序存放线性表的各元素

数据结构笔记(三)数据结构笔记(三)

       访问下标为i的元素:L.Data[i] 或者 Ptrl->Data[i]                  线性表长度:L.Last+1 或者 Ptrl->Last+1

      3. 链式存储实现:不要求逻辑上相邻的两个元素物理上也相邻,通过链建立起数据元素之间的逻辑关系。

    

        数据结构笔记(三)                  数据结构笔记(三)

 3. 广义表

 数据结构笔记(三)        数据结构笔记(三)     

数据结构笔记(三)广义表示线性表的推广,线性表元素为单元素,对于广义表,元素也可以是广义表

多重链表:节点可能隶属于多个链  

 eg:  稀疏矩阵的链表表示   :只存储非零元素项,每个结点通过两个指针域把同行同列串起来

 数据结构笔记(三)数据结构笔记(三)

 

        数据结构笔记(三)