C++实战数据结构与算法-第4节线性表的定义

  • 线性表的定义
  1. 线性表就是零个或者多个相同数据元素的有序列。
  2. 线性表的表示方式
  3. 线性表L可用二元组形式描述:

         L=(D,R)  //线性表=(数据+结构)

         线性表具有前驱和后驱关系

     4.线性表的实例

       设有一个顺序表L={1,2,3,4,5,6},它们的关系图如下

 

     5.使用二元组描述L=(D,R),则

         D={1,2,3,4,5,6} (n=6)

         R={<1,2><2,3>,<3,4>,<4,5>,<5,6>}

 

     6.线性表特征如下

        A、对非空表,A0是表头,无前驱。

        B、An-1是表尾,无后继。

        C、其他每个元素Ai有且仅有一个直接前驱和一个后继。

     7、线性表的基本运算

       A、建立一个空表CrealeLint(L).

       B、置空表:ClearList(L).

       C、判断表是否为空EmptyList(L). true(1)、false(0)

       D、求表长Length(L).

       E、取表中的元素GetList(L).

       F、定位运算:Locate(L,x).

      G、插入:Insert(L,x,i),它分为插入前和插入后

      H、删除:Delete(L,i)

      I、线性表其他内容:合并、拆分、复制、排序和遍历

 

   8.线性表算法描述

void Union(list la,list lb){
       int i,k;data_t x;
       for(i=0;i<Length(lb);i++){
               x = GetList(lb,i);
               k = Locate(la,x);
               if(k == -1){
                  Insert(la,x,Length(la));
               }
       }
}

 

    9.线性表的去重运算

void Purge(list L){
       int i = 0,j;
       data_t x,y;
       while(i<Length(L)-1)
       {
               X = GetList(L,i);
               j = i + 1;
               while(j<Length(L))
               {
                       y = GetList(L,j);
                       if(y == x){
                         Delete(L,j);
                       }else{
                         j++;
                       }
                       i++;
               }
       }
}

 

10.总结第四节

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随行之旅

python国产化自动化

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值